Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 3. Dreieckspunkt berechnen (https://www.delphipraxis.net/70861-3-dreieckspunkt-berechnen.html)

Börn 5. Jun 2006 22:49


3. Dreieckspunkt berechnen
 
Hallo zusammen,

ich habe folgendes Problem:

von einem Dreieck in einem Koordinantensystem (Höhe und Weite von Image-Objekt)habe ich die Koordinaten,
von 2 Punkten und die Länge der Höhe, des gesuchten 3. Punktes.

habe mich künstlerisch betätigt, um mein Problem zu verdeutlichen.

http://de.geocities.com/bjoern_bahl/...eckproblem.PNG

x1,y1,x2,y2 sowie h sind bekannt.
das Dreieck soll außerdem gleichschenklig sein, mit ver Verbindung der beiden bekannten Punkte als Basis.

die beiden Koordinaten des Roten Punktes benötige ich.


Ich weiß auch nicht, stehe irgentwie auf der Leitung und finde keine passable Möglichkeit die Koordinanten
auszurechnen... sehr frustrierend! :wall: :(


Wenn jemand eine Idee hat, würde ich mich sehr freuen.


Danke Börn :zwinker:

PS:
wusste keinen besseren Ort für die Frage...

jfheins 5. Jun 2006 23:12

Re: 3. Dreieckspunkt berechnen
 
Vektorrechnung:

a - b gibt dir den Vektor von b nach a.

du hast die Punkte A(X1), B(X2) und X(?).

- A - B = C

- C = C / 2 (==> jetzt haben wir den Punkt wo h ansetzt - von B aus !)

- C = B + C (==> und jetzt vm Ursprung)

- X = C + h ;) (so einfach ^^ - oder täusche ich mich ?)

richard_boderich 6. Jun 2006 06:37

Re: 3. Dreieckspunkt berechnen
 
ich wuerde eher mal sagen 2 x satzt des pythagoras oder?

richard

marabu 6. Jun 2006 07:17

Re: 3. Dreieckspunkt berechnen
 
Guten Morgen.

Den Mittelpunkt einer Strecke sollte jeder im Kopf bestimmen können. Natürlich geht es (auch) mit Vektorrechnung.

Zitat:

Zitat von jfheins
Vektorrechnung: X = C + h (so einfach ^^ - oder täusche ich mich ?)

Das ist nicht einfach, sondern falsch. h ist schließlich kein Vektor.

Den Ursprungsvektor P1(x1,y1) von P2(x2,y2) subtrahieren und dessen Länge halbieren - ergibt den Mittelpunkt M(x,y) der Grundlinie. Vom Vektor P3(x3,y3) kennen wir die Länge h - und da er orthogonal zur Grundlinie ist, kann man P3 durch Lösen des Gleichungssystems finden, welches aus der Betragsgleichung und dem Skalarprodukt der Vektoren (M,P3) und (P1,P2) besteht.

Jetzt aber ran an die Hausaufgaben.

Grüße vom marabu

jfheins 6. Jun 2006 09:02

Re: 3. Dreieckspunkt berechnen
 
Ja, der Mittelpunkt errechnet sich auf viele Arten ...
z.B. auch über ((x1+x2)/2 | (y1+y2)/2) ;)

Zitat:

Zitat von marabu
Zitat:

Zitat von jfheins
Vektorrechnung: X = C + h (so einfach ^^ - oder täusche ich mich ?)

Das ist nicht einfach, sondern falsch. h ist schließlich kein Vektor.

Ich ahne sehe es jetzt :( Aber war ja auch schon spät und ... :stupid:

Dann muss mans wohl mit nem Gleichungssystem und dem Skalarprodukt machen ...

Genauer gesagt,

x1*x2 + y1*y2 = 0
sqrt(x2²+y2²) = h

Jetzt aber :stupid:

Börn 6. Jun 2006 09:36

Re: 3. Dreieckspunkt berechnen
 
@all: danke für die Antworten!
@marabu: das sind keine Hausaufgaben! ich kann natürlich den Mittelpunkte berechnen, daher habe ich ihn auch nicht mit aufgeführt, aber mit den Gleichungen deines GL-Systems kann ich nichts anfangen, da ich zwar weiß, was Vektoren sind, aber nicht wirklich sehr gut damit umgehen kann.
@jfheins:
danke, dass du mir das GL-System mal in Form von Gleichungen aufgeschrieben hast, doch ich habe dazu Fragen:

- wie kommst du auf die 1. Gleichung?
- ich bin der Ansicht, dass die 2. Gleichung falsch ist! - das soll doch nen Pythagoras sein, aber x2 und y2 werden vom Koordinatenursprung berechnet, aber h beginnt nicht dort.
- wo sollen da die beiden gesuchten Größen (die Koordinaten) auftauchen?


Gruß

Börn

Klaus01 6. Jun 2006 10:01

Re: 3. Dreieckspunkt berechnen
 
Delphi-Quellcode:
// Typen
pz : TPoint;       // punkt wo die Senkrechte aufliegt
p3 : TPoint;      // Endpunkt der Geraden
m : Real;        // Steigung der Geraden
deg_cor : Real;   // Korrekturwinkel
radius: Integer;

// Berechnungen

       pz.X := p1.X + (p2.X - p1.X) DIV 2;
       pz.y := p1.y + (p2.y - p1.y) DIV 2;

       m := (p2.Y - p1.Y)/(p2.x -p1.X);

      deg_cor: radtodeg(arctan(m));

      radius := h;

      p3.x:=pz.x+round(radius*cos(( (90+deg_cor)*pi/180)));
      p3.y:=pz.y+round(radius*sin(( (90+deg_cor)*pi/180)));
Sollte auch in etwa so gehen,
Einen Halbkreis mit dem Radius h um den Mittelpunkt der Gerade schlagen
der Endpunkt liegt bei 90 Grad auf dem Halbkreis.

Grüße
Klaus

jfheins 6. Jun 2006 10:05

Re: 3. Dreieckspunkt berechnen
 
Mal schauen ...

Also ... wir haben den Vektor A, den Vektor B und h.

Errechnen:

C als Vektor von A nach B

M (als Mittelpunkt zwischen A und B)

Dann haben wir das Skalarprodukt von C mal X = 0

Und sqrt(X1² + X2²) = h

Also
C1*X1 + C2*X2 = 0 // Stichwort Skalarprodukt
sqrt(X1² + X2²) = h // Länge des Vektors ist gleich h
(C und h bekannt)

Und X ist dann ein Vektor relativ zu ... M? :angel2:
(Bin auch erst "frisch" in der Materie ...)

Börn 6. Jun 2006 10:39

Re: 3. Dreieckspunkt berechnen
 
@Klaus01!!!

super, das funzt, ich war auch schon auf die Idee mit dem Kreis gekommen, doch so wie du hätte ich das nicht
gelöst,

VIELEN DANK!! :dancer2: :dancer: :dancer2: :hello: :tongue: :hello:

auch an alle anderen, die hier ihre Antworten gepostet haben...

Gruß
Börn

dizzy 7. Jun 2006 10:18

Re: 3. Dreieckspunkt berechnen
 
Auch wenns schon gelöst ist: Ein gleichschenkliges Dreieck ist immer auch gleichwinklig, und somit sind alle Winkel 60°. Folglich kommst du auch zu der Lösung, wenn du die Strecke AB um 60° drehst. Bleibt nur noch die Frage welche Ausrichtung der Stecke (AB vs. BA) in welche Richtung... :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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-2025 by Thomas Breitkreuz