• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] JavaScript Math.Formel erstellen

Madmix1

New member
Hallo Com,

ich benötige einmal eure Hilfe.
Eigentlich ist es mehr ein mathematisches als ein programmiertechnisches Problem.
Ich habe ein Canvas Element auf dem ich eine Linie zeichne.
Diese Linie ist willkürlich auf der Zeichenfläche eingebracht mit einem Start- (x,y) und einem Endpunkt (x1, y1).
Nun möchte ich eine parallele Linie oberhalb der ersten dazu einzeichnen.
Beide Linien sollen so zueinander ausgerichtet sein, dass wenn ich beide mit weiteren Linien verbinde ein Rechteck darstellen.
Es müssen sich also die Start und Endpunkte der zweiten Linie entsprechend ändern.
Die Ausrichtung der ersten Linie ist wie gesagt willkürlich und kann sich vom Winkel ändern.

In der unteren Zeichnung seht ihr was ich meine.

parallel.jpg

Meine Frage nun, gibt es dafür irgendeine Formel (mathematisch) oder wie kann ich das anders berechnen, setzen o.ä.
Ich hoffe ich habe mich einigermaßen Verständlich ausgedrückt.
Ich denke die Zeichnung sollte es besser erklären können was ich meine.

Danke im Vorraus.
Mad
 
Zuletzt bearbeitet von einem Moderator:
Ok, danke.
Ich habe mich in das Thema Normalenvektor mal versucht einzulesen, aber hier reicht meine Schulmathematik leider nicht mehr aus.
Das geht mein Verständnis baden und mein Hirn wünscht sich Urlaub wenn ich das lese.
Das scheint wohl ins Algebra zu gehen und das habe ich nie gelernt.
Nicht das ich Dumm bin aber diese Rechenform war zu meiner Zeit für die mittlere Reife nicht erforderlich und gebraucht habe ich das bisher auch noch nie.

Wäre es möglich mir eine kleine Formel zu schreiben und zwar so, dass ich sie in mein Prog einbauen könnte (also als Satz und nicht als Gleichung o.ä.)?
 
Ja, das ist lineare Algebra, aber wirklich kompliziert ist es nicht: zuerst rechnest du den Richtungsvektor der Geraden aus (also dx = x1 - x und dy = y1 - y). Diese beiden Werte vertauschst du dann und gibst dem einen ein anderes Vorzeichen (nx = dy und ny = -dx; hier kannst du noch mit einem Faktor skalieren, wenn du kein Quadrat haben willst). Damit hast du schon mal einen Normalenvektor. Den addierst du jetzt auf die beiden Endpunkte drauf und hast deine neuen Endpunkte (x2 = x + nx, y2 = y + ny, x3 = x1 + nx, y3 = y1 + ny).
 
Zurück
Oben