我如何通过知道 Point1 和 Point2 的位置以及 Point1 到 Point2 的线的长度以及 Point1 到 Point3 的线的长度来找到 Point3 的位置?
How do I find Point3 Position by we know Point1 and Point2 Position and length of Line Point1 to Point2 and length of line Point1 to Point3?
我需要一个公式来计算第三个点的位置,通过我们知道Point1和Point2的位置和线的长度(Point1, Point2)和线的长度(Point1, Point3) ).
# We represent it as follows:
Point1 as P1, Point2 as P2, Point3 as P3
P1 = (2, 16) or P1x,P1y = (2, 16)
P2 = (8, 10) or P2x,P2y = (8, 10)
length of the line (P1, P2) as L1, Length of the line (P1, P3) as L2
# I want to make length of the L2 longer than L1 ( so I plus 5 to length of the line L1 )
L1 = 8.5
L2 = L1 + 5 = 13.5
Find : Point 3 => P3 = (P3x = ?, P3y =?)
这是我的代码:我如何找到线的长度。
import math
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
那么我们如何找到P3的位置呢?
Find : P3 = (P3x = ?, P3y =?)
向量P1->P3和P1->P2共线,即P1->P3的坐标与P1->P2的坐标成正比;并且比例因子必须正好是长度之比 length(P1->P3) / length(P1->P2)
.
这为您提供了 P3x 和 P3y 的等式:
P3x - P1x == (L2 / L1) * (P2x - P1x)
P3y - P1y == (L2 / L1) * (P2y - P1y)
将其转换为 P3x 和 P3y 的定义:
ratio = L2 / L2
P3x = P1x + ratio * (P2x - P1x)
P3y = P1y + ratio * (P2y - P1y)
请注意,您不需要定义自己的 distance
函数;标准库 math
模块中已经有一个:
https://docs.python.org/3/library/math.html#math.dist
from math import dist
print( dist((2,16), (8,10)) )
# 8.485281374238571
我需要一个公式来计算第三个点的位置,通过我们知道Point1和Point2的位置和线的长度(Point1, Point2)和线的长度(Point1, Point3) ).
# We represent it as follows:
Point1 as P1, Point2 as P2, Point3 as P3
P1 = (2, 16) or P1x,P1y = (2, 16)
P2 = (8, 10) or P2x,P2y = (8, 10)
length of the line (P1, P2) as L1, Length of the line (P1, P3) as L2
# I want to make length of the L2 longer than L1 ( so I plus 5 to length of the line L1 )
L1 = 8.5
L2 = L1 + 5 = 13.5
Find : Point 3 => P3 = (P3x = ?, P3y =?)
这是我的代码:我如何找到线的长度。
import math
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
那么我们如何找到P3的位置呢?
Find : P3 = (P3x = ?, P3y =?)
向量P1->P3和P1->P2共线,即P1->P3的坐标与P1->P2的坐标成正比;并且比例因子必须正好是长度之比 length(P1->P3) / length(P1->P2)
.
这为您提供了 P3x 和 P3y 的等式:
P3x - P1x == (L2 / L1) * (P2x - P1x)
P3y - P1y == (L2 / L1) * (P2y - P1y)
将其转换为 P3x 和 P3y 的定义:
ratio = L2 / L2
P3x = P1x + ratio * (P2x - P1x)
P3y = P1y + ratio * (P2y - P1y)
请注意,您不需要定义自己的 distance
函数;标准库 math
模块中已经有一个:
https://docs.python.org/3/library/math.html#math.dist
from math import dist
print( dist((2,16), (8,10)) )
# 8.485281374238571