找出R中线的角度,斜率和截距

时间:2017-01-14 12:32:51

标签: r trigonometry

我正在尝试计算第3行的角度,斜率和截距,它距离第1行是60度或gem 'devise', '~> 4.1', '>= 4.1.1' 。我知道其他行的信息。

enter image description here

pi/3

我希望将结果保存为x1 = 652 x2 = 1017 y1 = 194 y2 = 632 ## Line 1 information angle.l1 = 1.565595 slope.l1 = 1.2 intercept.l1 = -588.4 ## Line 2 information angle.l2 = 0.5183978 slope.l2 = 0.5704363 intercept.l2 = 51.8663 angle.l3slope.l3

1 个答案:

答案 0 :(得分:0)

您是如何得出angle.l1 = 1.565595

的结论
## "line1" passes (x1, y1) and (x2, y2)
slope.l1 <- (y2 - y1) / (x2 - x1)
#[1] 1.2
angle.l1 <- atan(slope.l1)
#[1] 0.8760581

另外,你是如何断定“line3”和“line1”之间的角度是pi / 3的?如果是这样,由于“line3”与x轴的角度大于“line1”与x轴的角度,因此:

angle.l3 <- angle.l1 + pi / 3
#[1] 1.923256
slope.l3 <- tan(angle.l3)
#[1] -2.718736

根据你的数字,你得到“line3”的负斜率,这是不对的。

幸运的是,您可以获得“line2”的信息。

angle.l2 <- 0.5183978
slope.l2 <- 0.5704363
intercept.l2 <- 51.8663

你的意思是说“line2”和“line3”之间的角度是pi / 3吗?如果是的话,

angle.l3 <- angle.l2 + pi / 3
#[1] 1.923256
angle.l3 * 180 / pi
#[1] 89.70201

这就是说“line3”与x轴差不多是90度,从你的图表看起来并不正确。

“line1”,“line2”和“line3”之间的关系是什么?这是您未提及的重要信息。如果“line3”是“line1”围绕“line1”的反映,则解决方案很简单:

angle.l3 <- angle.l1 + (angle.l1 - angle.l2)
#[1] 1.233718
angle.l3 * 180 / pi
#[1] 70.68685
Em,70.68度看起来很明智。所以:

slope.l3 <- tan(angle.l3)
#[1] 2.853452

# "line3" passes (0, intercept.l3) and (x2, y2)
intercept.l3 <- y2 - slope.l3 * x2
#[1] -2269.961