Gleichseitiges Dreieck erstellen aus 2 Koordinaten

vom 04.09.2008, 15:29 Uhr

Ich bin langsam am Verzweifeln. Mein Ehrgeiz alleine eine Lösung zu finden ist nun nach 3 Stunden erloschen. Das ich so lange durchgehalten habe, finde ich doch recht erstaunlich, da es sich noch nicht mal um eine Hausaufgabe handelt, sondern lediglich um eine weiterführende Übung, die wir nicht einmal besprechen werden, da wir die Zeit dafür nicht haben. Dennoch möchte ich nun eine Lösung für das Problem finden.

Im Fach Informatik arbeiten wir momentan mit Delphi. Dort haben wir ein Programm erstellt, das verschiedene Formen zufällig in ein Image zeichnet (Ellipse, Rechteck). Da Delphi selber kein Dreieck erstellen kann, sollten wir uns daran versuchen.

Es geht nun also darum aus 2 beliebigen Koordinaten P(x1|y1), Q(x2|y2) ein gleichseitiges Dreieck zu Konstruieren. Dafür wird der dritte Punkt des Dreiecks benötigt.

Ich hatte schon mehrere Lösungen, die in und für sich schlüssig aussahen, jedoch beim Berechnen falsche Werte gaben. Könnte mir jemand erklären wie man zu einer Lösung kommt?

Ein paar Ansätze von mir:
Seitenlänge des Dreiecks:
a = [(x1-x2)² + (y1-y2)²]^0,5

Winkel zwischen P und einer parallelen der x-Achse:
α = tan ^-1 ((y1 -y2)/(x1-x2))

Alles andere lässt sich ohne Zeichnung nur schwer darstellen.

Ich hoffe jemand kann damit was anfangen und mir weiter helfen. VIelen Dank

Benutzeravatar

» mich » Beiträge: 665 » Talkpoints: 2,91 » Auszeichnung für 500 Beiträge



Kannst Du mit Vektoren rechnen, bzw. kann Delphi das?

Damit könntest Du den Vektor zwischen den beiden Punkten bestimmen und daraus dann den Mittelpunkt dieses Vektors, bzw. die Länge.

Um die Entfernung zu bekommen musst Du dann tatsächlich mit dem Winkel und Tangens rechnen. Die Länge des halbierten Vektors und die Länge des gesamten Vektors in einem Winkel von 60° aufeinander stellen. Somit müsstest Du an den letzten Vektor kommen, bzw. wo genau die Spitze des Vektors liegt.

Benutzeravatar

» ArcaNoé » Beiträge: 299 » Talkpoints: 2,45 » Auszeichnung für 100 Beiträge


Ich denke mal, dass Dein Problem eher beim Berechnen des dritten Punktes liegt, das Zeichnen ließe sich einfach durch

Code: Alles auswählen
TCanvas.Polygon(Array of TPoint);
erledigen.

Um diesen dritten Punkt zu errechnen gibt es ja mehrere Möglichkeiten, die den Besonderheiten des gleichseitigen Dreiecks geschuldet sind. Mir fällt spontan ein, dass das gleichseitige Dreieck immer drei Seiten mit der Länge a hat. Errichtet man am Punkt a/2 eine Gerade, die im Winkel von 90 ° auf a steht, dann kann man mit dem Satz des Pythagoras den Wert von h berechnen: (a/2)²+h² = a² => h = (1/2)*sqr(3)*a. Mit der Länge von h kann man dann auch den fehlenden Punkt des Dreiecks berechnen.

» JotJot » Beiträge: 14058 » Talkpoints: 8,38 » Auszeichnung für 14000 Beiträge



Ähnliche Themen

Weitere interessante Themen

^