AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Pixelkoordinaten einer Linie
Thema durchsuchen
Ansicht
Themen-Optionen

Pixelkoordinaten einer Linie

Ein Thema von calculon · begonnen am 28. Jul 2007 · letzter Beitrag vom 29. Jul 2007
 
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#22

Re: Pixelkoordinaten einer Linie

  Alt 28. Jul 2007, 21:04
Ich habe das ganze einfach im Taschenrechner eingegeben und ableiten lassen (dauert ganz schön lange...) dann auf 0 gesetzt und auf lambda auflösen lassen.
Dann ist die oben genannte Formel rausgekommen. Habe es auch durchgetestet. Ich kann die Punkte drehen und plazieren wie ich will, es scheint immer zu stimmen.
Den Abstand zur Geraden rechne ich aus, indem ich noch einen Vektor vom Punkt P4 auf der Geraden (den ich mit Lambda ausgerechnet habe) zum untersuchten Punkt erstelle und den Betrag berechne:
abstand := sqrt(sqr(p3.x-p4.x)+sqr(p3.y-p4.y));

Als Quellcode: (nur schnell runtergetippt, nicht getestet!)
Delphi-Quellcode:
function Abstand (const p1, p2, p3: TPoint): double;
var
  p4: TPoint;
  lambda: double;
begin
  lambda := (sqr(p1.x)-p1.x*(p2.x+p3.x)+p2.x*p3.x+(p1.y-p2.y)*(p1.y-p3.y))/(sqr(p1.x)-2*p1.x*p2.x+sqr(p2.x)+sqr((p1.y-p2.y)));
  p4.x := p1.x+lambda*(p2.x-p1.x);
  p4.y := p1.y+lambda*(p2.y-p1.y);
  Result := sqrt(sqr(p3.x-p4.x)+sqr(p3.y-p4.y));
end;
Kann sein dass Delphi hier mit Integer rechnet (wegen TPoint), dann kommt das falsche raus. Ansonsten sollte es stimmen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz