enter image description here Ich muss die erste Zeile mit der Position des Fingers zeichnen. Später muss ich die zweite parallele Linie mit der Position des Fingers zeichnen. Ich habe es schon getan. Und die Hauptaufgabe ist es, die dritte senkrechte Linie zwischen diesen parallelen Linien zu zeichnen. Wie kann ich die dritte Zeile zeichnen?Wie zeichne ich eine gerade senkrechte Linie zwischen zwei anderen parallelen Linien?
Antwort
Wenn Sie 2 parallele Linien haben und eine senkrechte Linie zwischen ihnen ziehen möchten, benötigen Sie 1 zusätzlichen Punkt. Angenommen, dieser Punkt befindet sich in der Mitte der ersten Zeile (nennen Sie es C
).
Auch gehen wir davon haben die folgenden:
L1 // Represents the first line
L2 // Represents the second line
L1.start // Represents the line start point CGPoint
L1.end // Represents the line end point CGPoint
Jetzt wollen Sie L1
eine senkrechte Linie an der ersten Linie zeichnen und zu tun, müssen Sie seine normal
erhalten, die in 2D ist ziemlich einfach. Ermitteln Sie zuerst die Linienrichtung, indem Sie den Anfangs- und Endpunkt einer gegebenen Linie direction = CGPoint(x: L1.end.x-L1.start.x, y: L1.end.y-L1.start.y)
subtrahieren. Jetzt die normal zu bekommen, müssen wir einfach Koordinaten invertieren und teilen sie durch Richtungslänge:
let length = sqrt(direction.x*direction.x + direction.y*direction.y)
let normal = CGPoint(x: -direction.y/length, y: direction.x/length) // Yes, normal is (-D.y, D.x)
So sagte, als der Startpunkt ist C
jetzt müssen wir nur den Endpunkt auf der anderen Leitung finden, die C + normal*distanceBetweenLines
ist. Also brauchen wir den Abstand zwischen den zwei Linien, die am besten durch Punktprodukt erhalten werden ...
Zuerst brauchen wir einen Vektor zwischen einem beliebigen Punktpaar aus den zwei Linien (ein Punkt in der ersten Zeile und der andere auf der zweite Reihe). Werfen wir also
let between = CGPoint(x: L1.start.x-L2.start.x, y: L1.start.y-L2.start.y)
Jetzt müssen wir diese Linie normal mit Punktprodukt projizieren die Länge des Vorsprungs zu erhalten, die die Länge zwischen den beiden Linien
let distanceBetweenLines = between.x*normal.x + between.y*normal.y
.
So, jetzt haben wir alle Punkte senkrechte Linie zwischen zwei bestimmten Linien zu zeichnen die Linien unter der Annahme sind parallel:
L3.start = C
L3.end = CGPoint(x: C.x + normal.x*distanceBetweenLines, y: C.y + normal.y*distanceBetweenLines)
- 1. Canvas senkrechte Punkte auf Linie
- 2. Wie zeichne ich eine Linie zwischen ListBoxItems
- 3. Wie fülle ich zwischen zwei parallelen Linien WPF?
- 4. Wie zeichne Linie zwischen zwei Latlong Punkte?
- 5. Wie zeichne Linien zwischen Kreisen?
- 6. Wie zeichne ich vertikale Linie zwischen zwei Tasten in Android
- 7. UICollectionView - Zeichne eine Linie zwischen Zellen
- 8. Senkrechte Linie in lat/lang
- 9. C++ Finden von parallelen Linien Koordinaten innerhalb einer Grenze
- 10. Wie zeichne ich eine Linie mit zwei Steigungen mit Python
- 11. zeichne gerade Linie zwischen zwei imagebutton Anzeige in einer Aktivität auf finger berühren in android
- 12. Wie zeichne Linie zwischen zwei Kreis in html canvas Element
- 13. Wie zeichne ich Linien zwischen allen Punkten in einem Vektor?
- 14. Wie zeichne ich eine Linie mit Markerköpfen mit bestimmten Koordinaten?
- 15. senkrechte Linie zu zwei Punkten in Pixelkoordinaten zeichnen?
- 16. Wie zeichne ich eine Linie zwischen zwei Punkten über ein Bild in swift 3?
- 17. Linie zwischen zwei Unterplots zeichnen
- 18. Wie zeichne ich N Linien pro Zoll?
- 19. SVG gerade Linie Animation
- 20. Wie zeichne ich eine gerade Linie bei Wert X mit WinRTXamlToolkit.Controls.DataVisualization?
- 21. Wie zeichne ich eine Linie mit mehreren Punkten in javaFx?
- 22. Wie zeichne horizontale Linien zwischen Y-Achsen-Ticks in Plotly?
- 23. versucht, eine Linie zwischen zwei divs erstellen
- 24. Wie zeichne ich eine horizontale Linie in iTextSharp?
- 25. Graphviz, Wie zentriert man den Pfeil (eine gerade Linie) zwischen zwei Knoten?
- 26. Wie zeichne ich einen Teil einer Linie in SVG?
- 27. Sql zwei Linien Kreuzung
- 28. Regex Wie finde ich zwei oder mehr identische Linien mit einer Linie zwischen in einer Datei
- 29. Wie zeichne ich eine Verbindung zwischen Zeichenelementen?
- 30. Wie zeichne ich eine Zeichenfolge zwischen Klammern?
Was ist also die Frage anders als einige Aussagen zu machen? –
Ist das eine Frage der (schnellen) Programmierung oder der Geometrie/Mathematik? –
@ElTomato Wie zeichnet man eine senkrechte Linie zwischen parallelen Linien? – kvv