从 2 个点和一个角度得到 tird 的位置
from 2 points and an angle get position of tird
我有 2 个点和一个角度,想找出第 3 个点在哪里。一幅画:
我知道a,p1,p2和它们之间的距离d。现在我想找到p3的坐标。
例如:a = 30°; p1 = (10,10,10); p2 = (10,10,20); p3 = (?,10,?)
注意:由于轴的命名方式,y 值保持不变。
我该怎么做?
给定点 P1
和 P2
我们计算它们之间的距离:
d12 = sqrt((P2.x - P1.x)*(P2.x - P1.x) + (P2.y - P1.y)*(P2.y - P1.y) + (P2.z - P1.z)*(P2.z - P1.z))
请注意,您也可以使用 math.pow(P2.x-P1.x, 2)
而不是重新相乘
我们也计算P1到P2的夹角,知道.y
坐标是一样的:
aP1P2 = math.atan2(P2.z-P1.z, P2.x-P1.x) # In radians, not degrees
现在我们减去给定的a
角度:
aP1P3 = aP1P2 - math.radians(a) # 'a' is given in degrees, but we use radians
最后点P3由P1,距离,计算出的角度给出:
P3.x = P1.x + d12 * math.cos(aP1P3)
P3.y = P1.y # same as P1 an P2
P3.z = P1.z + d12 * math.sin(aP1P3)
我有 2 个点和一个角度,想找出第 3 个点在哪里。一幅画:
我知道a,p1,p2和它们之间的距离d。现在我想找到p3的坐标。 例如:a = 30°; p1 = (10,10,10); p2 = (10,10,20); p3 = (?,10,?) 注意:由于轴的命名方式,y 值保持不变。 我该怎么做?
给定点 P1
和 P2
我们计算它们之间的距离:
d12 = sqrt((P2.x - P1.x)*(P2.x - P1.x) + (P2.y - P1.y)*(P2.y - P1.y) + (P2.z - P1.z)*(P2.z - P1.z))
请注意,您也可以使用 math.pow(P2.x-P1.x, 2)
而不是重新相乘
我们也计算P1到P2的夹角,知道.y
坐标是一样的:
aP1P2 = math.atan2(P2.z-P1.z, P2.x-P1.x) # In radians, not degrees
现在我们减去给定的a
角度:
aP1P3 = aP1P2 - math.radians(a) # 'a' is given in degrees, but we use radians
最后点P3由P1,距离,计算出的角度给出:
P3.x = P1.x + d12 * math.cos(aP1P3)
P3.y = P1.y # same as P1 an P2
P3.z = P1.z + d12 * math.sin(aP1P3)