如果我在3D中线上的一个点有x,y坐标,并且我需要使用python获得这个z坐标,我该怎么做呢?我有3D线条的起点(x1,y1,z1)和终点(x2,y2,z2),所以有什么建议吗?
发布于 2013-07-23 01:43:03
您可以轻松地设置直线的参数方程:
x = x1 + (x2 - x1)*t
y = y1 + (y2 - y1)*t
z = z1 + (z2 - z1)*t给定a (x,y),求解t的这个方程
x = x1 + (x2 - x1)*t所以
t = (x - x1) / (x2 - x1)或
t = (y - y1) / (y2 - y1)现在您了解了t,可以找到z
z = z1 + (z2 - z1)*t所以在Python中应该是:
def computeZ(p1,p2,x,y):
x1,y1,z1 = p1
x2,y2,z2 = p2
if x2 - x1 != 0:
t = (x - x1) / (x2 - x1)
elif:
t = (y - y1) / (y2 - y1)
else:
print "no unique z value exists"
return 0
return z1 + (z2 - z1)*t发布于 2013-07-23 01:45:30
您只需要知道X或Y值之一,而不是两者都知道。这个方程,如果你有一个X值,A,将是:
((A - x1)*(z2 - z1)/(x2 - x1)) + z1使用它,您可以插入两个初始点和一个x,并获得新点,如下所示:
def get_points(p1, p2, x):
x1, y1, z1 = p1
x2, y2, z2 = p2
new_z = ((x - x1)*(z2 - z1)/(x2 - x1)) + z1
new_y = ((x - x1)*(y2 - y1)/(x2 - x1)) + y1
new_p = (x, new_y, new_z)
return new_phttps://stackoverflow.com/questions/17793844
复制相似问题