Unterstützung des SVG-Attributs „non-scaling-stroke“.

Manchmal ist es besser, wenn die Linien eines Objekts ihre ursprüngliche Breite beibehalten, unabhängig von der angewandten Transformation. Ein Beispiel: Sie zeichnen eine Linie auf einer Karte, die die Position des Benutzers und ein Ziel anzeigt. Wenn der Benutzer die Karte vergrößert, soll die Karte vergrößert werden, aber die Linie soll ihre Breite beibehalten.

Im SVG-Standard gibt das Attribut „non-scaling-stroke“ an, dass die Strichstärke nicht von der Vergrößerung oder Skalierung abhängt. Mit anderen Worten: Die Linien eines Objekts werden durch Transformationen und Zoomen nicht beeinträchtigt.

Hier ist ein Beispiel für zwei Rechtecke mit derselben Linienstärke. Das Rechteck auf der linken Seite verwendet das Attribut „non-scaling-stroke“, während das Rechteck auf der rechten Seite dieses Attribut nicht verwendet:

Schauen Sie sich die SVG-Datei an:

<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>

Wir haben auch neue Befehle für das Thema „4D SVG“ hinzugefügt. Sie können das Attribut „non-scaling-stroke“ für Zeichenobjekte mit der SVG_SET_STROKE_VECTOR_EFFECT Methode.

// 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; "blau"; "weiß";1)
SVG_SET_STROKE_VECTOR_EFFECT ($rect1; "non-scaling-stroke")

// Second rectangle
$rect2 :=SVG_New_rect ($svgRef;45;1;40;40;0;0; "grün"; "weiß";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 kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.