Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Punkt zwischen 2 Punkten (https://www.delphipraxis.net/68796-punkt-zwischen-2-punkten.html)

Evian 5. Mai 2006 14:51


Punkt zwischen 2 Punkten
 
Hallo,

ich habe 2 Punkte vom Typ TPoint und brauche eine Funktion, die mir den Punkt liefert der auf der Gerade zwichen Punkt1 und Punkt 2 liegt und x% der Strecke von Punkt1 zu Punkt2 von Punkt1 entfernt ist. Da ich in der Schule bei Geometrie immer geschlafen habe, fällt mir das jetzt ein wenig schwer. :) Hat jemand eine Idee, wie eine solche Funktion aussehen könnte?!

gruß

Evi

Klaus01 5. Mai 2006 15:02

Re: Punkt zwischen 2 Punkten
 
kannst mal hier schauen, da ist es erklärt: http://www.hinterseher.de/Diplomarbe...unktionen.html

Grüße
Klaus

Khabarakh 5. Mai 2006 15:08

Re: Punkt zwischen 2 Punkten
 
Zitat:

Zitat von Evian
ich habe 2 Punkte vom Typ TPoint und brauche eine Funktion, die mir den Punkt liefert der auf der Gerade zwichen Punkt1 und Punkt 2 liegt und x% der Strecke von Punkt1 zu Punkt2 von Punkt1 entfernt ist. Da ich in der Schule bei Geometrie immer geschlafen habe, fällt mir das jetzt ein wenig schwer. :)

Da musst du aber ziemlich tief geschlafen haben, um die gesamte Vektorrechnung zu verpassen :gruebel: .

http://de.wikipedia.org/wiki/Strecke_%28Geometrie%29

R2D2 5. Mai 2006 15:11

Re: Punkt zwischen 2 Punkten
 
Probier mal
Delphi-Quellcode:
p3.x := (p1.x - p2.x)*Prozentsatz + p1.x;
p3.y := (p1.y + p2.y)*Prozentsatz + p1.y;
Ich kann dier aber nichts garantieren.

Khabarakh 5. Mai 2006 15:17

Re: Punkt zwischen 2 Punkten
 
Zitat:

Zitat von R2D2
Ich kann dier aber nichts garantieren.

Gut so, denn es ist ziemlich falsch ;) . Aber ich stelle hier sicher nicht die korrigierte Version rein, wenn diese schon längst in dem Link über deinem Beitrag steht.

markusj 5. Mai 2006 15:21

Re: Punkt zwischen 2 Punkten
 
Nicht schlecht für 13 Jahre^^, aber knapp daneben ist auch vorbei ...
Satz des Pytagoras:

Abstand = sqrt((x1-x2)^2+(y1-y2)^2)
RichtungsvektorX = x2-x1
RichtungsvektorY = y2-y1
Punkt dazwischen ... (Prozentzahl/100)*Richtungsvektor+Punkt1

mfG

Markus

pacman1986 5. Mai 2006 15:24

Re: Punkt zwischen 2 Punkten
 
müsste es nicht so lauten?

Delphi-Quellcode:
Xm := (x1+x2)/2;
Ym := (y1+y2)/2;

Muetze1 5. Mai 2006 15:31

Re: Punkt zwischen 2 Punkten
 
Zitat:

Zitat von pacman1986
müsste es nicht so lauten?

Delphi-Quellcode:
Xm := (x1+x2)/2;
Ym := (y1+y2)/2;

Und wo sind da die x % der Strecke zu finden?

R2D2 5. Mai 2006 15:35

Re: Punkt zwischen 2 Punkten
 
Er meint genau die Hälfte der Strecke.

Khabarakh 5. Mai 2006 15:37

Re: Punkt zwischen 2 Punkten
 
Nicht immer nur die Überschrift lesen und gleich auf den Antworten-Button hämmern :stupid: :mrgreen: .

Evian 5. Mai 2006 15:38

Re: Punkt zwischen 2 Punkten
 
mh.. irgendwie stell ich mich zu doof an.. also mein Code ist im Mom folgender:

Delphi-Quellcode:
Function getpoint(anf,ende:TPoint;pro:integer):TPoint;
VAR
point : TPoint;
calc : double;
BEGIN
  calc := 100 / pro;
  point.X := anf.X + round((ende.X-anf.X)*calc);
  point.Y := anf.y + round((ende.Y-anf.Y)*calc);
  result := point;
END;
aber funktioniert halt nicht.

(uhh man ist das Peinlich :oops:)

markusj 5. Mai 2006 15:40

Re: Punkt zwischen 2 Punkten
 
Richtig ...

da wo ich was von Punkt dazwischen gesprochen habe, ist die Prozentzahl drinne ...
Ach ja, bei der Bestimmung des Punktes muss die Rechnung mit beiden Teilkomponenten der Vektoren durchgeführt werden ... (Grundlage Vektorrechung ... Man multipliziert einen Vektor, indem man seine Teilvektoren multipliziert etc.)
Sprich Punktdazwischen.X := (Prozentzahl/100)*Richtungsvektor.X+Punkt1.X
und das ganze noch mit Y...

mfG

Markus

ROTKASTEN: Die Strecken müssen über Pytagoras bestimmt werden!!
EDIT: ROTKASTEN2 ... Evian ... was geht nicht???

Khabarakh 5. Mai 2006 15:45

Re: Punkt zwischen 2 Punkten
 
Zitat:

Zitat von markusj
ROTKASTEN: Die Strecken müssen über Pytagoras bestimmt werden!!

Abgesehen davon, dass man den guten Mann mit h schreibt: Wofür denn das :gruebel: ?
Zitat:

Delphi-Quellcode:
calc := 100 / pro;

Das ist die einzige Zeile Code, in der ich spontan einen Fehler sehe.

markusj 5. Mai 2006 15:46

Re: Punkt zwischen 2 Punkten
 
Der Rotkasten war auf R2D2 bezogen ... ... weil man mit seiner Formel nicht rechnen kann, auch nicht für die halbe Strecke ... dafür braucht man Phytagoras ... (besser so? *g*)
Aber stimmt, er rechnet nicht Prozent/100 sondern 100/Prozent ... das ist der Fehler!!!

mfG

Markus

Evian 5. Mai 2006 15:52

Re: Punkt zwischen 2 Punkten
 
ja hast recht.. zu meiner rechtfertigung muss ich aber sagen, dass ich den ganzen Tag auf arbeit rum wegitiere und mir die ganze zeit VBA reinziehen muss.. da wird man irgendwann bescheuert


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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