Supporto dell’attributo SVG “non-scaling-stroke

Tradotto automaticamente da Deepl

A volte è preferibile che le linee di un oggetto mantengano la loro larghezza originale, indipendentemente dalla trasformazione applicata. Ad esempio, si disegna una linea su una mappa che mostra la posizione dell’utente e una destinazione. Quando l’utente ingrandisce la mappa, si vuole ingrandire la mappa ma far sì che la linea mantenga la sua larghezza.

Nello standard SVG, l’attributo “non-scaling-stroke” indica che la larghezza del tratto non dipende dallo zoom o dal ridimensionamento. In altre parole, le linee di un oggetto non sono influenzate dalle trasformazioni e dallo zoom.

Ecco un esempio di due rettangoli con lo stesso spessore di linea. Il rettangolo a sinistra utilizza l’attributo “non-scaling-stroke”, mentre quello a destra non lo utilizza:

Osservate il file SVG:

<svg viewBox="0 0 90 45" xmlns="http://www.w3.org/2000/svg">
<rect x="1" y="1" width="40" height="40" fill="white" stroke="blue" stroke-width="1px" vector-effect="non-scaling-stroke"/>
<rect x="45" y="1" width="40" height="40" fill="white" stroke="green" stroke-width="1px" />
</svg>

Abbiamo anche aggiunto nuovi comandi al tema “4D SVG”. È possibile definire l’attributo “non-scaling-stroke” per gli oggetti di disegno con il metodo SVG_SET_STROKE_VECTOR_EFFECT metodo.

// Create view box
$svgRef:=SVG_New (90;45)

// First rectangle with the non-scaling-stroke attribute
$rect1 :=SVG_New_rect ($svgRef;1;1;40;40;0;0; "blu"; "bianco";1)
SVG_SET_STROKE_VECTOR_EFFECT ($rect1; "non-scaling-stroke")

// Second rectangle
$rect2 :=SVG_New_rect ($svgRef;45;1;40;40;0;0; "verde"; "bianco";1)

// Save image on disk
File ("/RESOURCES/Images/rectangle.svg").create()
SVG_SAVE_AS_TEXT ($svgRef; File("/RESOURCES/Images/rectangle.svg").platformPath)

// Clear reference
SVG_CLEAR ($svgRef)

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.