0 Daumen
1k Aufrufe

Ich möchte die Punkte A und B eines Dreiecks in einem Koordinatensystems berechnen und gegeben sind folgende Werte als variablen:

Punkt C, die Höhe, den Höhenschnittpunkt, alle Winkel.

Ich habe zunächst angefangen die lineare Funktion hc bestimmt und davon die Orthogonale bestimmt, um eine Funktion für meine Seite c zu haben. Danach habe ich mit Die steigungen der Seiten a und b mithilfe eines Tagens des Winkels zur X-Achse gebildet. Nun habe ich mithilfe von meinem Punkt c und der jeweiligen Steigung den y-Achsenabschnitt der jeweiligen Formeln gebildet und mithilfe von gleichsetzen und einsetzen der Formel X und Y meiner Punkte bestimmt.

Die Winkel meines Dreiecks stimmen immer, nur scheinen die X-Koordinaten komplett daneben zu liegen, je höher/niedriger irgendwelche Steigungen sind und ich komme einfach nicht auf den Rechenfehler.

Anders gesagt: Die Punkte A und B sollen auf meiner Orthogonale liegen, was sie nicht tun (bzw. nur bei 2 bestimmten Winkeln). Sie liegen immer auf einer parallelen geraden zur Orthogonalen.

Falsch:

Bild Mathematik

(etwa) Richtig:

Bild Mathematik

1. Frage: ist der Gedankengang richtig?

2. Frage: sind meine Formeln korrekt?

Steigung Berechnen durch 2 Punkte: m= (y2 - y1) / (x2 - x1)

Steigung mithilfe eines Winkels berechnen: tan(alpha)

Y-Achsenabschnitt berechnen: b= -(m * x - y)

X Berechnen: x= (b1 - b2) / (m1 + m2)

Y Berechnen: y = m*x+b


Ich habe das ganze in einer Programmiersprache realisiert. Vielleicht kann mir ja irgendjemand Denkanstößte geben, wo ich einen Fehler eingebaut habe.

Avatar von

du beziehst das Ganze ja auf die Koordinaten des Maus-Klicks in deinem .Net-Control.
Wo befinden sich diese Koordinaten in den Screenshots ?

Gruß
Ralf

Der Punkt C ist der Schnittpunkt der Linie mit dem Kreis (da befindet sich die Maus zum Zeitpunkt) und der Schnittpunkt der Höhe ist der Startpunkt (im Code der HelpPoint, der beim MouseDown event bestimmt wird)!

1 Antwort

0 Daumen

ich habe mir deine Lösung noch nicht angeschaut.

Sind dies die Gegebenheiten ?

Bild Mathematik

Falls ja.

sin ( alpha ) = hc / b
sin ( beta ) = hc / a
sin ( alpha ) / a = sin (gamma) / c
c =
Damit hätten wir die Längen des Dreiecks berechnet.
Du willst die Koordinaten noch ausrechnen ?
Wenn ich C als Fixpunkt nehme ( das Dreieck um C rotieren lasse )
gibt es unendlich viele Dreiecke.

Soweit meine Überlegungen.

Avatar von 122 k 🚀

Der Schnittpunkt von hc ist gegeben, aber die Seitenlängen nicht. Also kann es immer nur ein Dreieck geben.


Hier nochmal die gegebenheiten:

Bild Mathematik

Irgendwie stimmt dein Dreieck aber nicht.

Unten links hast du 2 Teilwinkel mit 20 ° eingezeichnet.
Der gesamte Winkel hat jedoch 90 ° ?

Stimmt diese Skizze ?

Bild Mathematik

Gegeben
hc
C ( x | y )
P ( x | y )
alpha ( 70 ), beta ( 70 ), gamma ( 40 )

Willst du die Koordinaten der Ecken A und B berechnen ?

Ja genau so stimmts, sorry, ich hab das grade eben mit Paint gemacht.

Das ist diei Aufgabe

Gegeben
hc
C ( xc | yc )
P ( xp | yp )
alpha = beta , gamma = 180 - 2 *alpha

Obwohl : wenn ich  C ( xc | yc )  und P ( xp | yp )  kenne ist die Angabe von
hc überflüssig.

Und : du willst die Koordinaten der Ecken A und B berechnen ?

Genau, ich hatte mithilfe von hc die orthogonale gebaut, und wollte halt das ganze über Schnittpunkte machen...


Bin aber gerne für alles andere offen!

Bild Mathematik

Gegeben

C ( xc | yc )
P ( xp | yp )
Winkel gamma  ( Mauszeigerwinkel  in der Spitze )

Bild Mathematik m Steigung zwischen C und P
m(N) Steigung der Normalen dazu
Die Länge Strecke PA läßt sich berechnen.

Bild Mathematik


Über die Steigung der Normalen m(N) und die Länge der Strecke PA
läßt sich delta(x) und delta(y) berechnen.
Diese Werte sind mit den Koordinaten von P ( xp | yp ) zu verrechnen
um auf die Koordinaten von A zu kommen.
B läßt sich auch so berechnen.

Ich weiß nicht ob meine Lösung zu umständlich ist.
Ich biete daher die konkrete Berechnung für ein Beispiel an.
Dann bitte C, P und gamma angeben.

Ich versuche das mal programmtechnisch umzusetzen und melde mich dann nochmal! Vielen Dank schon einmal!

Alles klar, das klappt wunderbar!

Bin selbst Programmierer. Du mußt wahrscheinlich noch den Sonderfall
xp = xc berücksichtigen. Dann hättest du im 2.Schritt eine Division durch 0.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community