如果我有三維線上點的x,y座標,並且我需要使用python來獲得這個z座標,我該怎麼做?我有三維線條的起點(x1,y1,z1)和終點(x2,y2,z2),所以有什麼建議嗎?在3d中使用python在一條線上的一個點的z座標
0
A
回答
3
您可以輕鬆地設置該線路的參數方程:
x = x1 + (x2 - x1)*t
y = y1 + (y2 - y1)*t
z = z1 + (z2 - z1)*t
所以給出一個(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
1
你只需要知道X或Y值,不都。該公式,如果你有一個X值,將是:
((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_p
相關問題
- 1. 算法找到一個點的座標,這是一個關於一條線在3D中的點的反射
- 2. 基於焦點點在座標系上畫一條橢圓線?
- 3. 使用Python中的座標列表創建一條線GUI
- 4. 使用座標繪製一條線
- 5. 在極座標圖中,用一條線連接底座上的每個系列
- 6. 從一個點和一條線獲取矩形座標
- 7. 在一條線上移動一個點:用兩條線之間的線
- 8. 由於點的座標只是一個3d座標,所以在點aframe中交點
- 9. 用SAGE計算橢圓曲線上一個點的y座標?
- 10. 力點在一條線上
- 11. cin未定義數量的座標在一條線上
- 12. 用Python顯示3D散點圖中點的座標
- 13. 如何在matplotlib中的軸上繪製一條線(在圖座標中)?
- 14. 獲取一條線的座標陣列
- 15. 計算圓上一點的座標,沿圓的中心與另一點之間的一條直線?
- 16. 在OpenGL中繪製一條座標以像素爲單位的座標線
- 17. 在座標之間繪製一條線(使用svg)
- 18. 找到圖像上的座標,知道一條線的中心點和斜率
- 19. 計算的x,y,z座標(3D)從圖像點(2)
- 20. 在3D圖像集中畫一條線
- 21. 從一個座標和一個角度繪製一條直線
- 22. 的Python:在一個簡單的線條
- 23. 一個點相對於一個參考座標系的座標
- 24. 在兩個3D點之間繪製一條弧線
- 25. KML當我在一個標顯示線點擊其他座標
- 26. 如何找到給定線的另一點和垂直線上的2個點的線上點的X座標?
- 27. 在MATLAB中用非笛卡爾座標繪製一條線
- 28. 如何用tkinter在鼠標座標後面畫一條線?
- 29. 獲取從地圖上畫出一條直線上的座標
- 30. Z階曲線座標
如果'x1 == x2'和'y1 == y2'如何處理? – 6502
這是更多的數學問題,這裏有一個關於堆棧交換的不同論壇。 http://math.stackexchange.com – nio