如何使线性对象(由坐标定义)与垂直线相交?

我以数据帧的形式定义了坐标之间的线性段的结构。

我计算了这些线段的中点,以及通过中点的垂直线的坡度。

目标是获得另一侧的交点,即对象的“宽度”(交点和中点之间的距离)。 Picture of Plot (midpoints and segments) 我尝试了R中不同包的一些交集方法。 但是,我还没有找到一种方法来获得这些要点。

test_xml <- readPicture()


test_paths <- data.frame(x = test_xml@paths$path@x,y =
test_xml@paths$path@y)

test_paths_mid <- test_paths[!duplicated(test_paths),]
test_paths_clean <- data.frame(x = test_paths_mid$x,y =
test_paths_mid$y)

test_paths1 <- data.frame(ID = seq(nrow(test_paths_clean)),test_paths_clean)

Gradient <- (((shift(test_paths1$y,type = "lead")) - test_paths1$y) /
((shift(test_paths1$x,type = "lead")) - test_paths1$x))

test_paths2 <- data.frame(test_paths1,Gradient = Gradient)


b <- (test_paths2$y - test_paths2$Gradient * test_paths2$x)

x_midpoint <- ((shift(test_paths2$x,type = "lead") - test_paths2$x) / 2)
+ test_paths2$x

y_midpoint <- (test_paths2$Gradient * x_midpoint) + b

test_paths3 <- data.frame(test_paths2,x_midpoint,y_midpoint)


Gradient_2 <- ((-1) / Gradient)

b_2 <- test_paths3$y_midpoint - (Gradient_2 * test_paths3$x_midpoint)

zeropoints_x <- ((-1) * b_2) / Gradient_2
zeropoints_x <- data.frame(x = zeropoints_x,y = 0)
zeropoints_x[is.na(zeropoints_x)] <- 0

zeropoints_y <- data.frame(y = b_2)
zeropoints_y[is.na(zeropoints_y)] <- 0
jiangst 回答:如何使线性对象(由坐标定义)与垂直线相交?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3132174.html

大家都在问