2 Pluspunkte 0 Minuspunkte

Ich verstehe das mit Winkeln zeichnen nicht ganz. Wie kann ich einen beliebigen Winkel zeichnen? Angenommen ich habe diese Position

PointF startPoint = new PointF(100, 100);

Jetzt möchte ich von diesem Punkt aus eine Linie in einem bestimmten Winkel und mit bestimmter Länge zeichnen. Und vom Endpunkt dieser neuen Linie möchte ich dann nochmal eine weitere Linie wieder in einem bestimmten Winkel und Länge zeichnen. 

Wie mache ich das?

von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Ich nehme an das du bereits weißt wie du mit der Graphics Klasse arbeitest, insbesondere Linien zeichnen kannst und es nur um die Mathematik geht. Sinus - Kosinus

// Startpunkt
PointF startPoint = new PointF(100, 100);

// Winkel in Grad
float degree = 45;

// Länge
float length = 200;

// Winkel in Radiant umrechnen (PI entspricht 180 Grad)
float radians = degree * (float)Math.PI / 180;

// Endpunkt berechnen
float endPointX = startPoint.X + length * (float)Math.Cos(radians);
float endPointY = startPoint.Y + length * (float)Math.Sin(radians);
PointF endPoint = new PointF(endPointX, endPointY);

// Zeichnen der ersten Linie
e.Graphics.DrawLine(Pens.Red, startPoint, endPoint);

// Start der zweiten Linie

// Winkel in Grad
degree = 15;

// Länge
length = 200;

// Winkel in Radiant umrechnen
radians = degree * (float)Math.PI / 180;

// Endpunkt
float newEndPointX = endPoint.X + length * (float)Math.Cos(radians);
float newEndPointY = endPoint.Y + length * (float)Math.Sin(radians);
PointF newEndPoint = new PointF(newEndPointX, newEndPointY);
    
// Zeichnen der zweiten Linie
e.Graphics.DrawLine(Pens.Blue, endPoint, newEndPoint);

von (716 Punkte)  
Muss ich dabei immer Math.Cos für X und Math.Sin für Y nehmen oder kommt das auf etwas an?
Diese Zuordnung von Kosinus für die x-Komponente und Sinus für die y-Komponente gilt für einen Winkel, der im mathematischen Sinne vom Nullpunkt des Koordinatensystems aus gemessen wird, wobei der Nullpunkt als Ursprung des Vektors dient.

https://i.ibb.co/9hSNRtK/56fb8d52da5a8-3279caba8dc53ad0e4cbe0b89ef70bdf724f5d71-1.png

Der Kosinus eines Winkels gibt das Verhältnis der Länge der anliegenden Seite eines rechtwinkligen Dreiecks zur Hypotenuse (der Länge des Vektors) an.
Da die anliegende Seite die horizontale (x-) Komponente des Vektors ist, wird der Kosinus für die Berechnung der x-Koordinate verwendet.

Der Sinus eines Winkels gibt das Verhältnis der Länge der gegenüberliegenden Seite eines rechtwinkligen Dreiecks zur Hypotenuse (der Länge des Vektors) an.
Da die gegenüberliegende Seite die vertikale (y-) Komponente des Vektors ist, wird der Sinus für die Berechnung der y-Koordinate verwendet.