簡體   English   中英

使用 R 中的歐幾里德距離在曲線上找到 X、Y 坐標

[英]Finding X, Y coordinates on a curved line using Euclidean distance in R

根據我閱讀的一項研究,我試圖從基於歐幾里德距離的曲線中提取三個點。 從曲線的最左邊開始,我想在起點(我已經可以做到)、中點和通過線的三分之二處提取 X、Y 值。 但是,我不知道如何使用歐幾里德距離來找到相應的 X 和 Y 值,而且我希望復制的方法的研究沒有概述這是如何完成的,因此希望各位好心人能夠提供幫助.

如果我的數據看起來有點像這樣(實際數據每行包含 21 個 X 和 21 個 Y 值):

df <- data.frame(x = c(-4, -3, -2, -1, 0, 1, 2, 3, 4), y = c(1.5, 1.5, 1.5, 1.25, 0.8, 0, -1.2, -2.8, -4))

這在視覺上看起來像:

plot(df)
lines(df)

示例曲線

歐幾里得距離為:

根據 Roland 和 Bertil 的反饋更新

cumsum(diag(as.matrix(dist(cbind(df$x, df$y), method = "euclidean"))[-1,]))

[1]  1.000000  2.000000  3.030776  4.127362  5.407987  6.970037  8.856833 10.418883

如何提取線中途和線中 75% 的點?

非常感謝任何和所有幫助。

首先我們計算所有品脫之間的距離並保存為矩陣

dist_m <- dist(df) %>% 
  as.matrix()

然后我們可以通過提取下對角線[(2,1), (3,2),...]並累積求和來獲得累積距離

dist_m[2:nrow(dist_m), 1:(nrow(dist_m)-1)] %>% 
 diag() %>% 
 cumsum()

剩下的應該很簡單

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM