Zeichnen Sie einen Pfad zwischen zwei Punkten
Arbeite ich auf einem touch-basierte Spiel, und habe ich Probleme, einen Pfad zeichnen der Benutzer hat durch Sie berührt.
Ich bin versucht, zu imitieren, so etwas wie diese apps http://www.youtube.com/watch?v=G3CECr6mT1Q oder http://www.youtube.com/watch?v=r34-_0wrVC4
Ich Tue dies in XNA/C#.
Mein Problem ist: ich habe die Wegepunkte, die festlegen, dass Benutzer-touch-Pfad. Ich war nicht sicher, wie ich könnte eine stilisierte Linie zwischen diesen Punkten, also dachte ich "hey, ich will einfach nur einen wirklich kleinen Bild, das 'die Linie', und ziehen Sie es an jeder Stelle zwischen den Wegpunkten ist, und drehen Sie Sie entsprechend. Ich bin mir nicht sicher, wenn dies ist die beste Lösung oder nicht.
Aber ich war ratlos weil ich nicht weiß, wie man die Koordinaten zwischen diesen beiden Punkten. Ich habe die beiden Punkte, die ich bekommen kann ein Vektor von der ersten zur zweiten, usw, aber ich kann nicht scheinen, um die Mathematik zu korrigieren.
Anregungen oder Hilfe?
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Berechnen Zwischenpunkt zwischen zwei Punkten zu finden die Richtung, Vektor von einem Punkt zum anderen und der Abstand zwischen den Punkten. Skala die Entfernung durch einen Faktor t zwischen 0 und 1, wo t = 0 entspricht dem ersten Punkt t = 0.5 ist die Hälfte Weg zwischen Ihnen und t = 1 entspricht dem zweiten Punkt. Dann skalieren Sie die Richtung Vektors durch diesen Wert, und fügen Sie es an der ursprünglichen Stelle.
Wenn Sie berechnen, mehrere Punkte zwischen p0 und p1, sollten Sie nur die Berechnung der Entfernung und Richtung, sobald.
Könnte man auch mit XNA RoundLine die Verbindung Ihrer Punkte.
Ein weiterer Vorschlag ist, um Einrichtung eines strukturierten gedreht quad.
Code-Beispiele oben. PointA und pointB die beiden end-Punkte, newPoint wird jeder Punkt zwischen Ihnen
Check-out die Probe bei http://create.msdn.com/en-US/education/catalog/sample/primitives für details auf, wie zu zeichnen, einfache, "Primitive", darunter eine Linie.