Mega Code Archive
Determine if two 3D segments are perpendicular to each other
Title: Determine if two 3D segments are perpendicular to each other
Function SegmentsPerpendicular(x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4:Double):Boolean;
Var Dx1,Dx2 : Double;
Dy1,Dy2 : Double;
Dz1,Dz2 : Double;
Begin
{
The dot product of the vector forms of the segments will be
0 if the segments are perpendicular
}
Dx1 := x1 - x2;
Dx2 := x3 - x4;
Dy1 := y1 - y2;
Dy2 := y3 - y4;
Dz1 := z1 - z2;
Dz2 := z3 - z4;
Result := IsEqual((Dx1*Dx2)+(Dy1*Dy2)+(Dz1*Dz2),0)
End;
(* End Of *)
Const Epsilon = 1.0E-12;
Function IsEqual(Val1,Val2:Double):Boolean;
Var Delta:Double;
Begin
Delta := Abs(Val1-Val2);
Result := (Delta Epsilon);
End;
(* End Of Not Equal *)