看板 ck47th320 關於我們 聯絡資訊
※ 引述《changkh (留學生涯)》之銘言: : 我有一個空間幾何的問題: : 在三度空間中給定兩個線段,以(x, y, z)來表示端點,所以有四個點。 : 已知這兩個線段在x-y平面的投影相交,所以有"上""下"的關係。 : 問如何"不用除法"決定哪個線段在上哪個線段在下? : 一個簡單的解法是用 x-y平面解交點,代入線段方程式解z。 : 但是這個方法會用到除法。 : 印象中好像可以用外積來做,但是高中數學課本沒帶來。 : 有沒有人知道怎麼做的呢? 暴力硬算! :( 第一個線段 : x = x1 + a1 * s 第二個線段 : x = x2 + a2 * t y = y1 + b1 * s y = y2 + b2 * t z = z1 + c1 * s z = z2 + c2 * t u = ( a1, b1, c1 ), v = ( a2, b2, c2 ) A = ( x1, y1, z1 ), B = ( x2, y2, z2 ) 解兩線間最短距離點的坐標 : F(s,t)=(su+A-tv-B).(su+A-tv-B) dF/ds = 2(su+A-tv-B).u=0 dF/dt =-2(su+A-tv-B).v=0 解得 Qs=[(B-A).u](v.v)-[(B-A).v](u.v) Qt=[(B-A).u](u.v)-[(B-A).v](u.u) 其中 Q = (u.u)(v.v)-(u.v)^2 > 0 所以算 Q[ ( c1 * s + z1 ) - ( c2 * t + z2 ) ] 的符號 正就是第一個線段在上; 負就是第二個線段在上 :p 不想用除法....就只好把解硬算出來代了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.66.85 ※ 編輯: puberty 來自: 140.112.66.85 (04/25 11:53)