【发布时间】:2021-07-02 02:52:54
【问题描述】:
我希望计算 R 中一条线的中点与其上方曲线之间的距离,但在数学上很密集。我的曲线看起来都像下面的代码所示:
Curve <- data.frame(X = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.9046, 6.1424, 7.275, 8.5851, 10.0373, 11.9981, 13.7726, 15.0731,16.0664,
18.1945, 21.2666, 24.2093, 26.7119, 28.8037, 30.7135, 32.1351, 33.1982, 34.2341, 35.7587, 37.2147, 38.4303, 39.625, 40.4596, 42.0938, 42.7428, 42.7593, 43.5085, 43.7419, 43.5989, 44.0841, NA, NA, NA),
Y = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, -9.9938, -7.4596, -4.8647, -2.2903, 0.3158, 2.9302, 5.7262, 8.7033, 11.8007, 14.9847, 16.7225, 16.7813, 15.6921, 14.2964, 11.5579, 8.2378, 5.183, 1.5938, -2.0712, -5.195, -7.1447, -9.0446, -11.1269, -13.0979, -15.3295, -17.1898, -19.4376, -21.4781,-23.8426, -25.6343, NA, NA, NA),
fan_line = 1:42)
我能够在第一个和最后一个 xy 坐标之间画一条线,并找到该线的中点(如下图所示)。从这个中点开始,我现在需要构建一条从中点向上延伸到曲线的垂直线,并在该点提取 xy 坐标。我不知道这是怎么做到的。
如果相关的话,我所有的绘图都是在 ggplot 中完成的,但主要是我有兴趣提取垂直于图像中显示的中点(曲线的第一个和最后一个 xy 坐标之间的中点)的 XY 坐标,所以值而不是而不是绘图本身。
我之前一直根据中间 X 坐标(忽略 NA 值)计算曲线的中间 x 和 y 坐标,但这根本不是我想要的。
最终我有兴趣获得一个值,该值是图像中虚线的距离除以垂直线的长度。
请原谅我的数学无知
编辑:正如 Limey 指出的,从一点出发有任意数量的垂直线。我的意思是从我画的虚线的中点垂直。
Edit2:很抱歉我不清楚我在寻找什么。基本上,我想最终获得类似下图中红线的东西(请原谅 Microsoft Paint 工作)。
【问题讨论】:
-
从您的中点到曲线,在与曲线的交点处垂直于曲线的线数不胜数。你的意思是你想要一条从点到曲线的垂直线?如果没有,你必须告诉我们如何识别你的线与曲线相交的点......
-
对不起,是的。我正在尝试使用该方法的论文中的措辞。 (不清晰是我的,不是论文的)