Hätte jemand eine Idee, ob/wie es möglich ist, eine Linie zwischen Punkten zu zeichnen, während ein bestimmter Abstand zu den Endpunkten in SVG eingehalten wird?Wie zeichne ich einen Teil einer Linie in SVG?
Falls die Linie horizontal ist (zB von (40,40)
bis (100,40)
), man leicht eine Linie, die einen Abstand von etwa 20
zu den Punkten hält ziehen könnte als
<line x1="40" y1="40" x2="100" y2="40" desc="directional line" />
<line x1="60" y1="40" x2="80" y2="40" desc="actual part of line" />
Für diagonale Linien folgte, ist es jedoch, ist ein bisschen schwieriger. Um eine (leicht) diagonale Linie von (40,40)
zu (100,100)
zu ziehen, würden Sie cos(pi/4) = sin(pi/4) = sqrt(2)
brauchen die Strecke, die Sie vom Endpunkt bleiben weg wollen maßstab (in diesem Fall: 20*sqrt(2) = 14.1
)
<line x1="40" y1="40" x2="100" y2="100" desc="directional line" />
<line x1="54.1" y1="54.1" x2="85.9" y2="85.9" desc="actual part of line" />
Eine Demonstration dieses Codes können in diesen fiddle
fand es scheint also möglich, es zu tun, wenn
- der Winkel zwischen der Richtungslinie mit einer horizontalen Linie Berechnung
- Der Sinus und Kosinus des Winkels
- Die Endpunkte des aktuellen Teils der Linie, die Sie
Ist dies der einzige Weg zeichnen möchten oder SVG können Teile von Linien gehen oder gibt es intelligentere , bequemere Möglichkeiten, dies zu tun?