【問題】
已知兩個線段的端點座標分別為(x1, y1, z1)、(x2, y2, z2);(x3, y3, z3)、(x4, y4, z4),求它們的交點座標?
已知線段1座標:(7,6,7)、(1,4,5),線段2的座標:(4,7,4)、(4,4,7)。
由於兩條線段交點是唯一的,兩條直線交點也是唯一的,所以,求解線段交點可以利用求解直線交點的思想。
直線方程可以寫成:
用引數方程表示,也可以寫成:
先求解方程組:
x1+(x2-x1)t1=x3+(x4-x3)t2
y1+(y2-y1)t1=y3+(y4-y3)t2
解得(t1,t2)
再代入第三個方程檢驗是否成立:
z1+(z2-z1)t1=z3+(z4-z3)t2
如果第三個方程成立,則兩直線相交,且交點座標為(x1+(x2-x1)t1,y1+(y2-y1)t1,z1+(z2-z1)t1)。
【**】
from sympy import *
from sympy.abc import x,y
solution = solve([7+6*x-(4),6+2*x-(7+3*y)],[x,y])
print(solution)
t1=-1/2
t2=-2/3
print((7+6*t1,6+2*t1,7+2*t1))
【結果】
(4.0, 5.0, 6.0)
貪心演算法求解TSP問題(python)
這裡使用貪心演算法求解tsp問題的python版本 dist 為距離矩陣,start index 為起始位置 deftsp quick dist list start index int sum distance,seq result,n 0,start index,len dist for pat...
Python遞迴演算法以及命名空間
遞迴演算法 遞迴是一種程式設計的思路或者可以說是一種演算法,並沒有標準的語句結構或者語法等限制,只需滿足條件即可算是遞迴。遞迴條件 遞迴例子 10的集乘 10的集乘相當於,109的集乘,9的集乘相當於98的集乘,以此類推,為遞迴條件 而當乘到1時,集乘結束,為基線條件 集乘的遞迴 deffn a i...
找零問題之貪心演算法求解Python
貪心演算法是基於區域性最優原理,將問題分割成若干個小的子問題,然後求解子問題的最優解,這樣歸併子問題的解,從而求得整個問題的解。當然這個解並不是最優解,只能說是近似最優解,因為區域性最優的合併並不一定是全域性最優。貪心演算法還有驗證解的步驟,這個比較簡單,就是把解帶入即可 找零問題,比如說售貨員需要...