Mega Code Archive

 
Categories / Delphi / Graphic
 

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 *)