Podpora atributu „non-scaling-stroke“ SVG

Automaticky přeloženo z Deepl

Někdy je vhodnější, aby si čáry objektu zachovaly svou původní šířku bez ohledu na použitou transformaci. Například na mapě nakreslíte čáru zobrazující polohu uživatele a cíl cesty. Když uživatel mapu přiblíží, chcete mapu zvětšit, ale aby si čára zachovala svou šířku.

Ve standardu SVG atribut „non-scaling-stroke“ označuje, že šířka tahu nezávisí na zvětšení nebo škálování. Jinými slovy, čáry objektu nejsou ovlivněny transformací a zvětšením.

Zde je příklad dvou obdélníků se stejnou tloušťkou čar. Obdélník vlevo používá atribut „non-scaling-stroke“, zatímco obdélník vpravo tento atribut nepoužívá:

Podívejte se na soubor 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>

Přidali jsme také nové příkazy do tématu „4D SVG“. K objektům kreslení můžete definovat atribut „non-scaling-stroke“ pomocí příkazu SVG_SET_STROKE_VECTOR_EFFECT metodou.

// 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; "modrá"; "bílá";1)
SVG_SET_STROKE_VECTOR_EFFECT ($rect1; "non-scaling-stroke")

// Second rectangle
$rect2 :=SVG_New_rect ($svgRef;45;1;40;40;0;0; "zelená"; "bílá";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 se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.