Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Achsenspiegelung: Punkt an einer Gerade spiegeln? (https://www.delphipraxis.net/53413-achsenspiegelung-punkt-einer-gerade-spiegeln.html)

nano 15. Sep 2005 21:58


Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
Schöne Grüße an alle DP'ler =)

Folgende Situation:
Es wird eine Gerade vorgegeben (nur Anfangs- und Endpunkt)
Daran soll ein Punkt P(x,y) gespiegelt werden... Wie berechnet man das am günstigsten?

ps: es wird anschließend auf TImage32 (graphics32) gezeichnet...

ultrasombrero 15. Sep 2005 22:18

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
Zitat:

Zitat von nano
Schöne Grüße an alle DP'ler =)
Es wird eine Gerade vorgegeben (nur Anfangs- und Endpunkt)

[ ] Du weißt, was eine Gerade ist.

Eichhoernchen 15. Sep 2005 22:35

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
dann meinst er eben ne Stecke von A nach B^^

hmm ich vermute mal du wolltest sagen es sind 2 Punkte vorgegeben durch die die Gerade verläuft und dann darfste auch Gerade sagen, naja ich würde einfach den Abstand zwischen P(x|y) und der Gerade berechnen, den Winkel brechnen unter dem eine Gerade, die durch P(x|y) auf die Gerade auftrifft und dann das alles auf der anderen Seite dann einzeichnen. Der Winkel sollte ja 90° sein wenn du den kürzesten Weg von P(x|y) zu Geraden wählst.
Und ich glaube die Steigung der Senkrechten auf einer Geraden war der negative Kehrwert der Steigung der ausgangs Geraden.

glkgereon 15. Sep 2005 23:19

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
Zitat:

ich würde einfach den Abstand zwischen P(x|y) und der Gerade berechnen
was wiederum nicht ganz trivial ist.

das geht imho nur so (Klasse 11 :) ) dass du die senkrechte der geraden berechnest (m1 = - 1/m2), daraus den schnittpunkt der beiden geraden berechnest (m1*x+b1=m2*x+b2) und dann mit pytagoras (weisst du selber :) ) den abstand berechnest

oder geht es einfacher?

Edit:

Bitte sagt mir ob ich grad völligen schwachfug erzähle, aber ich hab bei ein paar tests auf nem blatt folgendes entdeckt:

y2 = y1 - 2*DeltaY

das funktioniert zb bei folgendenden Punkten:
A(1|1), B(10|4), P1(7|6), P2(8|0) (y2 = 6 - 2 * 3 = 0)
A(-1|-1), B(5|2), P1(2|4), P2(5|-2) (y2 = 4 - 2 * 3 = -2)

es kommt mir irgendwie ziemlich unwahrscheinlich vor das das wirklich stimmt, kann es sein das ich einfach zufällig zwei passende Beispiele gefunden hab?

Also A und B sind die Punkte wo die Gerade durchläuft, P1 der Punkt der gespiegelt werden soll, P2 der gespiegelte Punkt.
DeltaY ist halt xA - xB (evtl. |xA - xB| ?)

ich geh jetzt schlafen, bin auch relativ müde, von daher bin ich mir nicht sicher ob es doch nur zufall ist :)

n0b0dy 16. Sep 2005 00:38

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
also ich war in mathe eigentlcih bis zum abi im Mathe-LK immer sehr gut *angeb* und könnte bestimmt helfen :mrgreen: ,
aber ich verstehe net mal was gemacht werden soll. die frage is sehr seltsam gestellt... :?

und die lösung kommt mir etwas suspekt vor, trotz das ich nicht weiß was gemacht werden soll ;)


[EDIT]
vllt hab ich nun doch gerafft was gemacht werden soll^^

also folgende überlegungen sind notwendig:
1) Steigung der Geraden bestimmen
2) Steigung der Orthogonalen dazu bestimmen
3) Geraden zum Schnitt bringen
4) länge bis zum schnittpunkt bestimmen
5) punkt auf anderer Seite im gleichen abstand auftragen
6) Fertig
[/EDIT]

glkgereon 16. Sep 2005 07:14

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
also ich habe meinen Ansatz nochmal durchdacht, und der muss schwachsinn sein.

weil man kann P1 ja einfach entlang der Geraden durch P1|P2 nach "oben" verschieben. dann kann es so nicht mehr passen.

runger 16. Sep 2005 08:03

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
Hallo,

1.) Gerade berechnen--> Zweipunkteform
oder f(x)=mx+b beide Geradenpunkte einesetzen --> m und b berechnen.

2.) m negativ reziprok machen--> kehrwert * (-1)
Diese Steigung nenne ich M.

3.) in g(x)=Mx+B einsetzen

4.) Den Punkt durch den die senkrechte gehen soll in diese gleichung einsetzen.

5.) B berechen.

6.) B in Gleichung einsetzen

7.) Schnittpunkt beider Geraden berechnen.
mx+b=Mx+B löse auf dann kriegst du x0 einsetzen dann kriegst du y0

8.) Abstand berechnen (Formelsammlung)

9.) Diesen Abstand in die allgemeine Abstandsformel einsetzen
x1 und y1 werden durch durch deinen Schnittpunkt ersetzt
y2 wir durch Mx+B ersetzt

10.) Löse diese Gleichung auf, dann bekommst du einen X Wert
setze diesen in deine Geradengleichung ein und du bekommst einen y Wert
fertig.

Es gibt noch einen anderen Weg über die hessesche Normalform. ist aber komplizierter und hab ich im Moment nicht im Kopf

Eine etwas zynische Bemerkung: Hab ich dir jetzt deine Hausaufgaben gemacht?
Rainer

n0b0dy 16. Sep 2005 09:20

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
@runger.
über die Vektorielle Analytische Geometrie wäre das auch einfacher gewesen. ist halt geschmackssache. aber ich glaube das war auch nicht gefragt ^^

runger 16. Sep 2005 12:03

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
Hallo,

glaubst du, dass der das kann? Ich nicht.
Mein Beitrag ist extra banal angelegt um Ihn nicht zu verwirren.

Aber nochwas:
Ich hasse es auf den Tod, wenn sich hier jemand seine Hausaufgaben lösen lässt.
Hier gibts heute bestimmt schon 10 Beiträge in diese Richtung.

Rainer
Logisch ist ja auch wieder Schule!

n0b0dy 16. Sep 2005 12:05

Re: Achsenspiegelung: Punkt an einer Gerade spiegeln?
 
jo glaube es auch nciht, deshalb habe ichs ja nicht erklärt ;)

und das mit den HA haste recht :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz