討論串[問題] 請問三點共線
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁
內容預覽:
Point a,b,c;. int pos = a.x*b.y + b.x*c.y + c.x*a.y;. int neg = a.x*c.y + b.x*a.y + c.x*b.y;. if(pos==neg) {. // They're on the same line. }. 請問,我在網路上
(還有10個字)
內容預覽:
是外積沒錯,. 先算出兩向量 ab = <b.x-a.x, b.y-a.y>. ac = <c.x-a.x, c.y-a.y>. 此向量的外積: (b.x-a.x)*(c.y-a.y) - (c.x-a.x)*(b.y-a.y). = (b.x*c.y - b.x*a.y - a.x*c.y + a
(還有51個字)
內容預覽:
取兩段即可. ( a.y - b.y ) ( b.y - c.y ). --------------- = ---------------. ( a.x - b.x ) ( b.x - c.x ). 相乘. ( a.y - b.y ) * ( b.x - c.x ) = ( b.y - c.y )
(還有69個字)
內容預覽:
我覺得他用的是簡單多邊形的有號面積公式:. 1 | p1.x p2.x pn.x p1.x |. --- | ... |. 2 | p1.y p2.y pn.y p1.y |. pos - neg 正好是這個式子的兩倍 (就是那個很行列式的那一塊). 那麼三點共線 <==> 面積為 0 <==> p
(還有126個字)
首頁
上一頁
1
下一頁
尾頁