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 := (((Dx1 * Dx2) + (Dy1 * Dy2) + (Dz1 * Dz2)) = 0) 
end; 
(* End Of *) 
 
// vérifie si 2 droites tridimensionnelles sont perpendiculaires 
 
 
 
  
                       |