Bevor ich meine Frage mit Wörtern veranschaue, stellen Sie sich bitte ein 2D -Quadrat auf einem Bildschirm vor. In der Mitte dieses Quadrats befindet sich ein Bogenschützen mit einem Bogen. < /P>
In jeder Ecke des Quadrats ist ein Ziel. Wenn ein Punkt auf einem Ziel angeklickt wird, muss der Bogenschütze einen Pfeil auf dieses Ziel abfeuern. Der Pfeil muss so ausgerichtet sein, als würde er auf einem direkten Weg zwischen dem Bogenschützen und dem Ziel wie in der Natur wandern. Der Bogenschütze ist eine Ellipse in der Mittelreihe und in der Spalte. Die Ziele sind auch vom Typ Ellipse und in den Ecken. Und mit ihnen kann ich eine Linie zwischen ihnen erstellen. < /P>
private void DrawLine(Point archerCenter, Point targetPoint)
{
var vector = targetPoint - archerCenter;
if (vector.X < 0 && vector.Y < 0)
{// TopLeft
}
else if (vector.X > 0 && vector.Y < 0)
{// TopRight
}
else if (vector.X < 0 && vector.Y > 0)
{// BottomLeft
}
else if (vector.X > 0 && vector.Y > 0)
{// BottomRight
}
Line line = new();
line.Stroke = Brushes.Black;
line.StrokeThickness = 2;
line.X1 = archerCenter.X;
line.Y1 = archerCenter.Y;
line.X2 = targetPoint.X;
line.Y2 = targetPoint.Y;
grid.Children.Add(line);
Grid.SetColumnSpan(line, 5);
Grid.SetRowSpan(line, 5);
}
< /code>
Hinweis Ich kann die Länge der gezogenen Linie und die raue Richtung bestimmen, die der Pfeil in Richtung seines Ziels wandern muss. Diese Daten sind in Vektor var. 1 dieser Punkte, die ich bereits habe (Line.x1, Line.y1). Einfach richtig orientierte Linie. Aber ehrlich gesagt ist meine Mathematik weniger als elementar. < /P>
Ich hoffe, ich habe mein Problem klar mitgeteilt. Bitte fragen Sie nach einer weiteren Klärung.>
Wie verkürzt ich die Länge von a .NET C# System.windows.shapes.line zur Laufzeit? ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie verkürzt ich die Länge von a .NET C# System.windows.shapes.line zur Laufzeit?
by Anonymous » » in C# - 0 Replies
- 3 Views
-
Last post by Anonymous
-