求出 R 中直线的角度、斜率和截距
Find the angle, slope and intercept of a line within R
我正在尝试计算与第 1 行成 60 度或 pi/3
的第 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.l3
、slope.l3
和 intercept.l3
你是如何得出 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-axis 的角度大于 "line1" 与 x-axis 的角度,那么:
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-axis 几乎成 90 度角,从你的图表来看这并不正确。
"line1"、"line2"和"line3"之间有什么关系?这是一条你没有提到的重要信息。如果 "line3" 是 "line2" 围绕 "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
我正在尝试计算与第 1 行成 60 度或 pi/3
的第 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.l3
、slope.l3
和 intercept.l3
你是如何得出 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-axis 的角度大于 "line1" 与 x-axis 的角度,那么:
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-axis 几乎成 90 度角,从你的图表来看这并不正确。
"line1"、"line2"和"line3"之间有什么关系?这是一条你没有提到的重要信息。如果 "line3" 是 "line2" 围绕 "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