Frage

In Javascript, Ich versuche, eine Linie zu zeichnen, die in einem Winkel ist, den Benutzer definiert ist.

Grundsätzlich habe ich einen Punkt (x, y) und einen Winkel an der nächsten Stelle zu schaffen. Die Länge der Linie müssen 10px sein.

Lassen Sie uns sagen, dass der Punkt für den Anfang ist (180, 200) ... wenn ich gebe es Winkel „A“ und die (ich glaube) Hypotenuse 10 ist, was würde meine Gleichung (n) sein, die X zu erhalten und Y für eine Steigung?

Vielen Dank für Ihre Hilfe!

War es hilfreich?

Lösung

Unter der Annahme, H = Hypotenuse (10 im Beispiel), das ist die Formel für die Steigung:

Y2 = H(Sin(A)) + Y1
   = 10(Sin(A)) + 200

X2 = Sqrt((H^2)-(Y2^2)) + X1
   = Sqrt(100 - (Y2^2)) + 180

So, jetzt du hast

(180, 200) -> (X2, Y2)

Wo X2 wird Y2 abhängig von den Werten von A variiert und H

unsere Berechnung Um zu überprüfen, -. A (wie sie vom Benutzer eingegeben) berechnet werden kann die Steigung unter Verwendung von Gleichung Ersetzen der X1, X2, Y1 und Y2 Werte mit dem ursprünglichen Eingang und resultierenden Ausgang

A = InvTan((Y2 - Y1) / (X2 - X1))
  = InvTan((Y2 - 200) / (X2 - 180))

Andere Tipps

gut, von einfacher Trigonometrie ...

sin A ° = Y / 10

cos A ° = X / 10

10 ^ 2 = Y ^ 2 + x ^ 2

Wie Herr Doyle snarkily impliziert, die Mathematik ist nicht so schwer, aber:

1) Stellen Sie sicher, dass Sie klar darüber, was der Winkel bezeichnet wird, und welche Richtung Ihre Koordinaten gehen; einfachste trig Sachen vorausgesetzt, dass Sie mit traditionellen kartesischen Koordinaten beschäftigen sich mit x auf der rechten Seite zu erhöhen und y die Seite zu erhöhen oben, während die meisten Zeichnung api haben y die Seite zu erhöhen nach unten und nach rechts x erhöht.

2) stellen Sie sicher verstehen, ob die mathematischen Funktionen benötigen Grad oder Radiant und sie mit den entsprechenden Argumenten liefern.

Vielleicht eine bessere Art und Weise auf das Problem zu suchen ist, unter Verwendung von Vektoren:


(Quelle: equationsheet.com )

Sie können auch den Vektor, der diese Art und Weise schreiben:


(Quelle: equationsheet.com )

Dabei steht


(Quelle: equationsheet.com )

Einstellen der erste gleich die zweit uns für den Endpunkt lösen läßt den Ausgangspunkt, den Winkel gegeben, und der Abstand:


(Quelle: equationsheet.com )


(Quelle: equationsheet.com )

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top