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 ?