Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 15140|Svar: 0

SVG-väg/glyf D-attribut förklarat i detalj

[Kopiera länk]
Publicerad på 2018-05-04 11:29:47 | | | |


Denna egenskap definierar en väg.

användning

Attribut för kategorivägsdefinitionen

värde

Variabilitet Ja
Specifikationsdokumentation SVG 1.1 (2:a upplagan)
Egenskapen d är faktiskt en sträng som innehåller en serie vägbeskrivningar. Dessa vägar består av följande instruktioner:

  • Flytt till
  • Lineto
  • Curveto
  • Arcto
  • ClosePath


Dessa kombineras i en sträng. Dessa olika kommandon är kasuskänsliga; Ett stort kommando anger att dess parametrar är absoluta positioner, medan små kommandon anger en punkt relativt den aktuella positionen. Ett negativt värde kan specificeras som en parameter för kommandot: den negativa vinkeln kommer att vara moturs, och de absoluta x- och y-positionerna kommer att betraktas som negativa koordinater. Det negativa relativa x-värdet kommer att röra sig åt vänster, medan det negativa relativa y-värdet kommer att röra sig uppåt.

Flytt till

Moveto-kommandot kan ses som att plocka upp en ritpenna och landa på ett annat ställe. Det finns inget linjesegment draget mellan föregående punkt och denna angivna punkt. Det är en bra idé att starta en väg med ett Moveto-kommando, eftersom utan en initierad Moveto startpunkten kommer att vara där den föregående operationen ägde rum, vilket kan leda till obestämt beteende.

Syntax:

M x,y här är x och y absoluta koordinater, som representerar horisontella respektive vertikala koordinater.
M dx, dy här är dx och dy avstånden relativt den aktuella punkten, till höger respektive nedåt.
Exempel:

Vid absolut position x=50 är y= 100:<väg d="M50,100..." />
Flytta 50 till höger, 100 ner: <väg d="m50,100..." />

Lineto

Till skillnad från Moveto-kommandot ritar Lineto-kommandot ett rakt segment. Detta raka linjesegment rör sig från nuvarande position till angiven position. Syntaxen för det inbyggda Lineto-kommandot är "L x, y" eller "l dx, dy", där x och y är absoluta koordinater, och dx och dy är avstånden till höger respektive nedåt. Det finns också bokstäverna H och V, som anger horisontella respektive vertikala rörelser. De har samma syntax som L, och deras gemener är relativ distans, medan versaler är absolut position.

Curveto

Curvto-kommandot specificerar en Bézierkurva. Det finns två typer av Bézierkurvor: kubiska och kvadratiska kurvor. En kvadratisk Bézierkurva är en speciell kubisk Bézierkurva där de två ändarna av kontrollpunkten är desamma. Syntaxen för en kvadratisk Bézierkurva är "Q cx, cy x, y" eller "q dcx, dcy dx, dy". Cx och Cy är båda absoluta koordinater för kontrollpunkter, medan DCX och DCY är avstånden till kontrollpunkter i X- respektive Y-riktningarna.

Den kubiska Bézierkurvan följer samma koncept som den kvadratiska Bézierkurvan, men den måste ta hänsyn till två kontrollpunkter. Syntaxen för den kubiska Bézierkurvan är: "C c1x, c1y c2x, c2y x, y" eller "c dc1x, dc1y dc2x, dc2y dx, dy", där c1x, c1y och c2x, c2y är de absoluta koordinaterna för kontrollpunkterna för start- respektive slutpunkten. DC1X, DC1Y och DC2X, DC2Y är relativa till startpunkten, inte till slutpunkten. DX och DY är avstånden till höger respektive nedåt.

För att koppla samman släta Bézier-kurvor kan du också använda kommandona T och S. Deras syntax är enklare än andra Curveto-kommandon eftersom den antar att den första kontrollpunkten är en spegling av den föregående kontrollpunkten på den föregående, eller att det faktiskt är den föregående punkten om det inte finns någon tidigare kontrollpunkt. Syntaxen för T är "T x,y" eller "t dx,dy", vilket motsvarar absoluta koordinater respektive relativa avstånd, och används för att skapa en kvadratisk Bézierkurva. S används för att skapa en kubisk Bézierkurva, syntaxen är "S cx, cy x, y" eller "s dcx, dcy dx, dy", där (d)cx specificerar den andra kontrollpunkten.

Slutligen kan alla Bézier-kurvkommandon skapa en flersidig Bézier-graf, initialisera kommandot först och sedan specificera alla parametrar flera gånger för att skapa en flersidig Bézier-graf. Därför kan följande två kommandon skapa exakt samma väg:


Arcto

Ibland är det enklare att beskriva en elliptisk bågkurva än en Bézierkurva. I slutändan stöder vägelementet Arcto-kommandot. Bågens centrum beräknas av andra variabler. En arcto-deklaration är relativt sett en upprepning av Visual Studio: "A rx, ry xAxisRotate LargeArcFlag, SweepFlag x, y". Om man dekonstruerar den, är rx och ry radierna i x- respektive y-riktningarna, och värdet på LargeArcFlag är 0 eller 1 för att avgöra om man ska rita en liten båge (0) eller en stor båge (1). SweepFlag är också antingen 0 eller 1, vilket används för att avgöra om bågen är medurs (1) eller moturs (0). x och y är koordinaterna för destinationen. Även om xAxisRotate stöder att ändra x-axelns orientering i förhållande till den aktuella referensramen, verkar denna parameter inte ha någon större effekt i Gecko 7.

ClosePath

ClosePath-kommandot kommer helt enkelt att rita en rak linje från den aktuella punkten till den första punkten i den aktuella vägen. Det är det enklaste kommandot och kommer inte med några parametrar. Den följer den kortaste linjära vägen till startpunkten, och om andra vägar följer denna väg korsar de möjliga vägarna varandra. Syntaxen är "Z" eller "z", och båda skrivmetoderna har samma funktion.

Element

Följande element kan använda attributet d:

  • <path>
  • <glyph>


Samma regler kan tillämpas <animate>på animationsvägar.

Påminnelse

Origo (koordinatsystemet 0,0 punkter) är ofta det övre vänstra hörnet av kontexten. Dock <glyph>är elementets ursprung i det nedre vänstra hörnet av dess brevlåda.

En komma är tillåten mellan två tal, men inte någon annanstans.

exempel

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
             viewBox="0 0 50 50" enable-background="ny 0 0 50 50" xml:space="preserve">
    <path fill="#F7931E" d="M37,17v15H14V17H37z M50,0H0v50h50V0z"/>
</svg>

För att visa vad d="M37,17v15H14V17H37z M50,0H0v50h50V0z" faktiskt betyder, låt oss diskutera varje underpunkt i denna sträng.

d=" M37,17 || v15 || H14 || V17 || H37 || z // M50,0 || H0 || v50 || h50 || V0 || z"


d=
Denna egenskap innehåller strängarna som utgör hela SVG:n.
M37,17
M är förkortningen för MoveTo. Den stora bokstaven "M" betyder absoluta koordinater, och den gemenera "m" betyder relativ distans. Det innebär att det baseras på startkoordinaterna, linjen är inne i lådan, och du börjar i det övre högra hörnet av rektangeln inne i lådan.
37 är förkortningen för start-svg-positionen, vid 37 pixlar på X-axeln.
17 Start-svg-position, vid 17 pixlar på y-axeln.
v15
V står för vertikal. Den stora V anger absoluta koordinater, och den lilla V anger relativ längd och avstånd. dx/dy och x/y kan användas på motsvarande positioner för H/V och h/v.
Här representeras den rita en vertikal linje på 15 pixlar i förhållande till en given koordinat. Det betyder att du ritar 15 pixlar ner till koordinaterna 37,32.
H14
H står för nivå, vilket är absoluta koordinater eftersom det är med stor bokstav.
Från slutet av v15 ritas en horisontell linje tills absolut koordinat 14 nås, och avslutas linjeteckningen när den når x-koordinat 14. Strecken är placerade vid koordinaterna 14,32.
V17
Precis som tidigare, börja från slutet av föregående rad och rita en vertikal linje tills du når y-axelns koordinat 17. Strecken är placerade vid koordinaterna 14,17.
H37
Slutligen, från 14,17, rita en horisontell linje tills du når x-axelns koordinat 37. Stroken är placerad vid koordinaterna 37,17 (värdet M)
z
Både gemener och versaler Z sluter en serie SVG-segment.
,
Ett komma startar nästa sträng av enkla vektorgrafiska segment. Nästa serie av enkla vektorlinjesegment bildar ytterboxen.
M50,0
Börja vid x-axel 50 och y-axel 0.
H0
Dra en rak linje tills (0,0).
v50
Rita en vertikal linje på 0,0 pixlar i förhållande till 50. Denna linje kommer att dras till (0,50).
H50
Rita en horisontell linje på 50 pixlar i förhållande till (0,-50). Denna linje kommer att dras till höger till (50,50).
V0
Rita en vertikal linje tills du når y-axelns koordinat 0. Detta drar en linje till (50,0), vilket är värdet av M.
z
Både gemener och versaler Z sluter en serie SVG-segment.

Bifoga koden:


Slutligen bifogas länken till dokumentet: https://developer.mozilla.org/zh-CN/docs/Web/SVG/Attribute/d





Föregående:Guide för utveckling av blockkedjeapplikationer
Nästa:.net/c# Quartz.NET Fjärruppgiftsschemaläggning [med källkod]
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com