Sto disegnando una linea SVG con un "marker-end" per trasformarla in una freccia. Disegna la punta di freccia che si estende oltre la fine della linea, rendendo l'intera freccia più lunga, ma vorrei che l'intera freccia abbia la stessa lunghezza della linea originale. Cioè, la punta della punta della freccia dovrebbe essere sul punto finale della linea. Come lo faccio?SVG: allinea la punta di "marker-end" con la fine della riga
Rendere la linea più breve per adattarsi alle dimensioni della punta della freccia non funzionerà. La dimensione della punta della freccia dipende dallo spessore della linea (che è buona), ma non conosco lo spessore perché può essere specificato in un elemento di stile che è già stato scritto nel documento SVG.
In questo esempio, mi piacerebbe che la punta della freccia fosse interamente all'interno del quadrato, con la punta nell'angolo del quadrato, piuttosto che sporgere dal quadrato.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<g><marker id="arrowhead0" viewBox="0 0 60 60" refX="0" refY="30" markerUnits="strokeWidth" markerWidth="8" markerHeight="10" orient="auto">
<path d="M 0 0 L 60 30 L 0 60 z" fill="#800000" /> </marker>
<line marker-end="url(#arrowhead0)" x1="1" y1="1" x2="100" y2="100" stroke="#800000" />
<rect x="1" y="1" width="100" height="100" stroke="green" fill="none"/>
</g></svg>
Finché l'altra estremità non ha un marcatore. Mentre questo è intelligente, sento che una spiegazione più dettagliata del perché la tua soluzione funzioni migliorerebbe questa risposta. –
In realtà, le altre risposte sono molto meglio. –