使用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()
剩下的就很简单了
根据我阅读的一项研究,我正在尝试根据欧氏距离从曲线中提取三个点。从曲线最左边的点开始,我想提取起点处的 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()
剩下的就很简单了