如何檢查從一個點開始的向量是否經過另一個點?它在二維坐標上。主要使用c ,但也可以使用其他語言。
float2 startToTarget = target - start;
if ((startToTarget.x) * vec.y - (startToTarget.y) * vec.x >= -floatingPoint && (startToTarget.x) * vec.y - (startToTarget.y) * vec.x <= floatingPoint)
if ((startToTarget.x) * vec.x (startToTarget.y) * vec.y >= -floatingPoint && (startToTarget.x) * vec.x (startToTarget.y) * vec.y <= floatingPoint) intersecting = true;
uj5u.com熱心網友回復:
計算向量d(方向)和AB向量的叉積。如果結果為零,則這些向量是共線的,因此B點位于線上,由點A和方向向量定義d。
要檢查方向,還要評估點積,它的符號是正的,當方向d與方向重合時AB
abx = B.x - A.x;
aby = B.y - A.y;
//cross product //dot product
if (abs(abx*dy - aby*dx) < 1.0e-10 and abx*dx aby*dy>0)
{B lies on the ray A d}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/493793.html
標籤:C
上一篇:模板類引數作為型別
