Mega Code Archive

 
Categories / Delphi / Graphic
 

Orientation in 3D of a point relative to a plane

Title: Orientation in 3D of a point relative to a plane? function Orientation(x1, y1, z1, x2, y2, z2, x3, y3, z3, Px, Py, Pz: Double): Integer; var Px1, Px2, Px3: Double; Py1, Py2, Py3: Double; Pz1, Pz2, Pz3: Double; Orin: Double; begin Px1 := x1 - px; Px2 := x2 - px; Px3 := x3 - px; Py1 := y1 - py; Py2 := y2 - py; Py3 := y3 - py; Pz1 := z1 - pz; Pz2 := z2 - pz; Pz3 := z3 - pz; Orin := Px1 * (Py2 * Pz3 - Pz2 * Py3) + Px2 * (Py3 * Pz1 - Pz3 * Py1) + Px3 * (Py1 * Pz2 - Pz1 * Py2); if Orin then Result := -1 (* Orientaion is below plane *) else if Orin 0.0 then Result := +1 (* Orientaion is above plane *) else Result := 0; (* Orientaion is coplanar to plane if result is 0 *) end; (* End Of Orientation *)