Thema: Delphi auf linen klicken

Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#25

Re: auf linen klicken

  Alt 23. Dez 2006, 13:10
ich habe versucht draus eine funktion zu entwicklen.
Delphi-Quellcode:
function GetLineClick(x1,y1,x2,y2:Integer):Boolean;
var
  dxa,dya,dxb,dyb,x,y,x4,y4:Integer;
begin
  dxa:=x2-x1;
  dya:=y2-y1;
  x4:=x3+(y2-y1);
  y4:=y3-(x2-x1);

  dxb:=x4-x3;
  dyb:=y4-y3;
  x:=round(((y3-y1)*dxa*dxb+x1*dya*dxb-x3*dyb*dxa)/(dya*dxb-dyb*dxa));
  if abs(dxa)>abs(dxb) then
    y:=round(((x-x1)*dya+y1*dxa)/dxa)
  else
    y:=round(((x-x3)*dyb+y3*dxb)/dxb);
// die genauere Variante wird gewählt und /0 vermieden
  dist:=round(sqrt(sqr(x3-x)+sqr(y3-y)));
  
  if not((((x<=x1)and(x>=x2))or((x>=x1)and(x<=x2))) and (((y<=y1)and(y>=y2))or((y>=y1)and(y<=y2)))) then
    result:=false
  else
    result:=true;
end;
allerdings weiß ich nicht genau was x3 und y3 bedeuteten

edit: x3 und y3 ist bestimmt der klickpunk mit der maus,oder ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat