function PntInTriangle(Px, Py, x1, y1, x2, y2, x3, y3: Double): Boolean; 
var  
  Or1, Or2, Or3: Double; 
begin 
  Or1    := Orientation(x1, y1, x2, y2, Px, Py); 
  Or2    := Orientation(x2, y2, x3, y3, Px, Py); 
  Or3    := Orientation(x3, y3, x1, y1, Px, Py); 
  Result := (Or1 = Or2) and (Or2 = Or3); 
end; 
(* End Of PntInTriangle *) 
 
function Orientation(x1, y1, x2, y2, Px, Py: Double): Integer; 
var  
  Orin: Double; 
begin 
  (* Linear determinant of the 3 points *) 
  Orin := (x2 - x1) * (py - y1) - (px - x1) * (y2 - y1); 
 
  if Orin > 0.0 then Result := +1    (* Orientaion is to the right-hand side  *) 
  else if Orin < 0.0 then Result := -1  (* Orientaion is to the left-hand side   *) 
  else 
    Result := 0;                  (* Orientaion is neutral if result is 0  *) 
end; 
(* End Of Orientation *) 
 
 
 
  
   
     
      
         
          | 
		     Bewerten Sie diesen Tipp: 
		  
		   | 
         
       
     | 
   
 
                      
                       |