AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Möchte Entfernung von 2 Punkten auf einem Bild berechnen.
Thema durchsuchen
Ansicht
Themen-Optionen

Möchte Entfernung von 2 Punkten auf einem Bild berechnen.

Ein Thema von Mokuba01 · begonnen am 4. Jan 2009 · letzter Beitrag vom 5. Jan 2009
Antwort Antwort
Mokuba01

Registriert seit: 26. Jan 2007
Ort: Neupetershain
76 Beiträge
 
Delphi XE2 Professional
 
#1

Möchte Entfernung von 2 Punkten auf einem Bild berechnen.

  Alt 4. Jan 2009, 17:58
Hallo,

Ein Punkt auf einem Bild(TImage) steht schon fest. Wenn man jetzt auf einen Punkt im Bild klickt, soll die Entfernung berechnet werden.
Wie könnte man das machen?

Danke im Vorraus
mfg Mokuba01

PS: Vielleicht ein unsichtbares Dreieck zeichnen und dann die Diagonale berechnen?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 18:00
Warum willst du ein unsichtbares Dreieck zeichnen? Nur im Gedanken! Du hast den Ausgangspunkt und im OnClick() die Koordinate des Endpunktes. Dann hilft der Pythagoras und die Entfernung ist berechnet.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 18:01
Hi!

Deine Idee mit dem Dreieck ist schon genau die richtige!
Nur brauchst du es ja nicht wirklich zu zeichnen. Aber mit dem Satz des Pythagoras solltest du hier weiterkommen.
Du kennst ja quasi die Eckpunkte eines rechtwinklingen Dreiecks und die Längen der beiden Katheten somit auch. Dann kannst du die gesuchte Länge leicht ermitteln!

Wenn es Probleme gibt, wäre es schön, wenn du uns den Quelltext, den du bisher hast zeigen könntest und genau beschreiben könntest, wo es hakt!


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#4

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 18:02
Naja, einfach im onlclick even die maus coordinaten abreifen.
Und an über http://de.wikipedia.org/wiki/Pythagoras#Mathematik

MfG - Ghost007

Edit: Redbox
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#5

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 18:38
Punkte: A, B
Vektor AB ausrechnen ( B-A )
Länge = |AB|

Konkretes Beispiel:

Punkt A: x = 10 y = 20
Punkt B: x = 50 y = 30
Vek. AB: B.X-A.X, B.Y-A.Y -> x = 40 y = 10

Pythagoräische Lehrsatz:
c² = a² + b²
--> c = WurzelAus( a² + b² )
a und b sind die x und y Punkte des Vekotrs

Länge = SQRT( Vek.X*Vek.X + Vek.Y*Vek.Y )
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#6

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 19:03
Auch einen Blick wert wäre die Funktion Hypot aus der Unit math.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Mokuba01

Registriert seit: 26. Jan 2007
Ort: Neupetershain
76 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 21:09
Hi,
Delphi-Quellcode:
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  PunktA:TPoint;
  PunktB:TPoint;
  PunktC:TPoint;
{...}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
Langex,Langey:integer;
Lange:Extended;
begin
Punktb.X:=X;
Punktb.Y:=Y;
Punktc.X:=Punkta.X;
punktc.Y:=Punktb.Y;
Langex:=Punkta.X-Punktc.X;
Langey:=Punktb.Y-Punktc.Y;
if Langex<0 then
Langex:=Langex*(1-2);
if Langey<0 then
Langey:=Langey*(1-2);
Lange:=Hypot(Langex,Langey);
if Lange<0 then
Lange:=Lange*(1-2);
application.MessageBox(PChar(FloatToStr(Lange)),'',MB_OK);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
PunktA.X:=15;
PunktA.Y:=15;
end;
Leider kommt dort immer null raus. Was mach ich falsch?
mfg Mokuba01
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 4. Jan 2009, 21:29



Delphi-Quellcode:
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  PunktA:TPoint;

{...}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
DeltaX, DeltaY, Laenge: real;
begin
DeltaX = PunktA.X - X;
DeltaY = PunktA.Y - Y;

Laenge = Hypot(DeltaX, DeltaY);

showmessage(floattostr(laenge));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
PunktA.X:=15;
PunktA.Y:=15;
end;
So in der Art
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Möchte Entfernung von 2 Punkten auf einem Bild berechnen

  Alt 5. Jan 2009, 06:09
Zitat von Mokuba01:
Langex:=Langex*(1-2);
[ot]Vielleicht sollte man dieses Konstrukt noch hier aufnehmen... [/ot]
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz