Så justerar du befintliga vektornoder längs en sned linje
För att justera befintliga vektornoder längs en sned linje definierar du linjen med två fasta referenspunkter och flyttar sedan de andra noderna till den. Beräkna koordinaterna och ange dem individuellt för exakt placering. För interaktiv redigering kan du fästa varje nod vid en tillfällig rak referensbana.
Den här handledningen är avsedd för dig som finjusterar en befintlig vektorkontur eller detalj på en figur och vill behålla dess noder. Huvudmetoden använder koordinatfälten i Inkscape. Ett alternativ beskriver geometrifästning i Affinity Designer 2. Ingen av metoderna kräver att illustrationen byggs om.
Bestäm vad som ska vara fast innan du justerar noderna
Välj två referensnoder, A och B, som definierar den önskade lutningen. De kan markera ändarna på en rak del av en större figurkontur. Anteckna deras koordinater och låt dem vara oförändrade medan du flyttar de mellanliggande noderna.
Bestäm sedan hur de mellanliggande noderna ska flyttas. ”Justera längs en linje” beskriver slutpositionen, men inte rörelseriktningen. Här är tre användbara alternativ:
| Placeringsregel | Vad som bevaras | När du bör välja den |
|---|---|---|
| Behåll varje nods X-koordinat | Befintlig horisontell placering | Nodernas positioner motsvarar redan de horisontella referenspositionerna |
| Behåll varje nods Y-koordinat | Befintlig vertikal placering | Den vertikala placeringen är viktigare än den horisontella |
| Flytta vinkelrätt mot linjen | Kortast möjliga förflyttning för varje nod | Du vill ta bort sidavvikelsen från den avsedda linjen |
Reglerna kan ge olika resultat även om alla noder efteråt ligger på samma linje. Jämnt avstånd är en separat åtgärd: justering gör inte i sig avstånden mellan noderna lika stora. I Inkscapes dokumentation beskrivs vågrät eller lodrät justering och fördelning med lika avstånd separat. Justera och fördela — Inkscapes nybörjarguide
Markera befintliga noder utan att flytta hela formen
I Inkscape aktiverar du nodverktyget med N eller F2 och klickar sedan på den befintliga banan så att noderna visas. Klicka på noden du vill flytta. Nodverktyget redigerar banans geometri, inklusive nodernas positioner och handtagen som styr intilliggande segment. Redigera banor med nodverktyget — Inkscapes nybörjarguide
Spara en arbetskopia innan du redigerar och anteckna vilka noder som tillhör det aktuella avsnittet. En användbar notering innehåller koordinaterna för A och B, de ursprungliga koordinaterna för varje nod du ska flytta och den placeringsregel du har valt. Då kan du upprepa åtgärden och jämföra resultatet på ett tydligt sätt.
Använd markering av en enda nod för koordinatmetoden nedan. I Inkscapes kontroller för nodverktyget finns X- och Y-fält samt en väljare för koordinatenheter. Om du markerar en nod i taget blir koordinatändringen tydlig. Alternativ för nodverktyget — Inkscapes nybörjarguide
Undvik att använda ett objektjusteringskommando när uppgiften gäller noder inuti en och samma bana. Inkscapes dokumenterade arbetsflöde för justering skiljer sig åt beroende på om nodverktyget eller markeringsverktyget är aktivt. Justera och fördela — Inkscapes nybörjarguide
Beräkna exakta positioner och bevara den horisontella placeringen
För en sned linje genom A = (Ax, Ay) och B = (Bx, By) ligger en punkt med den horisontella koordinaten x på linjen när:
y = Ay + (x − Ax) × (By − Ay) / (Bx − Ax)
Den här ekvationen ger en praktisk justeringsmetod när varje nods X-koordinat måste förbli oförändrad. Det är en geometrisk beräkning, inte ett särskilt kommando i redigeringsprogrammet.
Betrakta följande uttryckligen illustrativa koordinater, alla i samma dokumentenhet: A = (20, 30) och B = (100, 70). Den horisontella skillnaden är 80 och den vertikala skillnaden är 40, så linjens ekvation blir:
y = 30 + (x − 20) × 0.5
Anta att tre befintliga mellanliggande noder har följande koordinater. Om deras X-värden behålls blir målpositionerna dessa:
| Nod | Ursprunglig position | Målposition |
|---|---|---|
| P1 | (40, 50) | (40, 40) |
| P2 | (60, 40) | (60, 50) |
| P3 | (80, 65) | (80, 60) |
Ange målpositionerna i Inkscape:
- Markera endast P1 med nodverktyget.
- Kontrollera att koordinatenheten stämmer med din beräkning.
- Behåll X-värdet 40 och ange 40 för Y.
- Markera endast P2 och ange Y = 50 samtidigt som du behåller X = 60.
- Markera endast P3 och ange Y = 60 samtidigt som du behåller X = 80.
- Kontrollera A och B mot de antecknade koordinaterna.
De tre noderna ligger nu på linjen som definieras av de oförändrade referenspunkterna. De lika stora horisontella avstånden i det här exemplet beror på de valda exempelkoordinaterna. Själva justeringsberäkningen skapar inte lika stora avstånd.
Den här formeln kan inte bevara X för en vertikal mållinje, eftersom Bx − Ax då är noll. För en vertikal linje ställer du in varje målnods X-värde till Ax. För en nästan vertikal linje kan det vara bättre att bevara Y, eftersom en liten horisontell skillnad kan motsvara en stor vertikal förflyttning.
Om du i stället vill bevara Y använder du x = Ax + (y − Ay) × (Bx − Ax) / (By − Ay). Den formeln kräver att By och Ay skiljer sig åt. Läs av alla koordinater i samma fält i redigeringsprogrammet och använd samma enhetssystem. Blanda inte dokumentkoordinater med mått från en skärmbild.
Använd vinkelrät projektion när du vill göra minsta möjliga förflyttning
Om varken X eller Y måste vara oförändrad ger en vinkelrät projektion den närmaste punkten på den oändliga mållinjen. Det är användbart när mellanliggande noder är lite förskjutna kring en i övrigt korrekt sned del.
För en befintlig nod P = (Px, Py) beräknar du först linjens riktning:
dx = Bx − Ax
dy = By − Ay
Beräkna sedan nodens position längs linjen och de projicerade koordinaterna:
t = ((Px − Ax) × dx + (Py − Ay) × dy) / (dx² + dy²)
Qx = Ax + t × dx
Qy = Ay + t × dy
Om du använder samma illustrativa referenspunkter och ursprungliga noder får du följande:
| Nod | Ursprunglig position | Vinkelrätt målposition |
|---|---|---|
| P1 | (40, 50) | (44, 42) |
| P2 | (60, 40) | (56, 48) |
| P3 | (80, 65) | (82, 61) |
Ange båda målkoordinaterna för varje nod separat. Värdena kontrollerades med en liten deterministisk Python-beräkning. De illustrerar geometrin och är inte mått från en viss figurfil.
Två villkor spelar roll. För det första måste A och B vara olika punkter: om referenspunkterna sammanfaller blir nämnaren noll och de definierar ingen linje. För det andra projicerar beräkningen på en oändlig linje. Ett t-värde mellan 0 och 1 placerar resultatet mellan A och B. Ett värde utanför intervallet placerar det bortom en ändpunkt.
Om en projicerad nod hamnar utanför det avsedda avsnittet bör du granska den innan du flyttar den. Om den automatiskt tvingas till den närmaste ändpunkten hamnar flera noder på samma ställe, vilket ändrar den avsedda placeringen. Formeln löser inte heller situationen där noderna i en befintlig bana går fram och tillbaka i den ordning de är förbundna.
Fäst noder vid en sned referensbana i Affinity Designer 2
För ett fåtal noder kan en tillfällig referensbana vara smidigare än att beräkna koordinater. I dokumentationen för Affinity Designer 2 finns ett alternativ för nodverktyget som heter Fäst vid geometrin hos markerade kurvor. Det fäster en nod som flyttas vid banan eller en nod på en markerad kurva. Nodernas fästkontroller fungerar oberoende av den globala fästningen. Nodverktyget — hjälpen för Affinity Designer 2
Följande arbetsflöde använder den dokumenterade funktionen för den här justeringsuppgiften:
- Skapa en separat rak referenskurva med önskad lutning och dra den genom de två referenspositionerna.
- Markera illustrationen och referenskurvan med nodverktyget.
- Aktivera Fäst vid geometrin hos markerade kurvor i snabbmenyn.
- Markera endast en nod i illustrationen och dra den mot referenskurvan.
- Kontrollera att den fästs vid rätt del av referensgeometrin.
- Upprepa för de återstående noderna och låt de två referensnoderna vara fasta.
- Ta bort den tillfälliga kurvan när du har kontrollerat resultatet.
Använd ett referenssegment som är tillräckligt långt för att täcka alla avsedda målpunkter. Kontrollera nära dess ändpunkter att en nod inte har hamnat på själva ändpunkten i stället för på den önskade inre delen.
Om du drar en nod till en bana hamnar den på den banan, men åtgärden anger inte i sig om noden ska projiceras vinkelrätt eller behålla X eller Y. Använd beräknade koordinater när de villkoren spelar roll. Affinity Designer 2 dokumenterar också hur enskilda noder flyttas via panelen Transformera. Redigera kurvor och former — hjälpen för Affinity Designer 2
Kontrollera Bézier-handtagen om konturen fortfarande ser böjd ut
Justerade noder ger inte nödvändigtvis en rak kontur. Bézier-handtagen styr formen på de anslutande segmenten, så ett segment kan bukta bort från mållinjen även när dess båda noder ligger på den. Redigera banor med nodverktyget — Inkscapes nybörjarguide
Granska varje anslutande segment för sig. Om uppgiften bara kräver att fästpunkternas positioner justeras bör du bevara den avsedda kurvaturen. Om själva avsnittet ska vara rakt behöver även handtagen hanteras på lämpligt sätt: använd raka segment eller placera de relevanta kontrollpunkterna längs mållinjen utan att skapa ett utslag utanför den.
Vid de två referensnoderna bör du tänka på konturen intill innan du ändrar nodtyper. Hörnnoder i Inkscape låter dig flytta handtagen oberoende av varandra. Med mjuka noder hålls båda handtagen i linje genom noden. Symmetriska noder håller dessutom handtagen på samma avstånd från noden. De här begränsningarna påverkar hur en rak del möter en intilliggande kurva. Om nodtyper — Inkscapes nybörjarguide
Oberoende handtag kan vara användbara i ett hörn där den raka delen möter en kurva. Vid en mjuk övergång bör du bevara den riktning som tangenten behöver ha. Om du ändrar alla noder till samma typ kan du i onödan påverka närliggande figurdeltaljer.
Kontrollera justeringen innan du tar bort referensen
Kontrollera resultatet mot uppgiften du valde från början:
- Referenspunkter: A och B har fortfarande sina antecknade koordinater.
- Placeringsregel: Noderna behåller X, behåller Y eller ligger på sina beräknade vinkelräta målpositioner.
- Omfattning: Varje mellanliggande nod ligger inom det avsedda avsnittet.
- Banordning: De sammanbundna noderna följer avsnittet i den avsedda ordningen.
- Segmentform: Kurvatur och övergångar motsvarar den önskade konturen.
- Precision: Avrundning av koordinaterna har inte orsakat en synlig avvikelse.
I det genomarbetade exemplet ska varje justerat koordinatpar uppfylla y = 0.5x + 20 inom den precision som användes när värdena angavs. Det ger en numerisk kontroll som är oberoende av hur resultatet ser ut. Granska också figuren i den storlek där den ska visas, eftersom det redigerade avsnittet fortfarande måste passa in i den omgivande formgivningen.
Låt de två referenspunkterna vara fasta, välj rörelseregel med omsorg och kontrollera de anslutande segmenten när noderna har placerats. Då får du ett repeterbart sätt att justera ett befintligt snett avsnitt och samtidigt behålla kontrollen över resten av figurens kontur.
Källor
- Justera och fördela — Inkscapes nybörjarguide
- Redigera banor med nodverktyget — Inkscapes nybörjarguide
- Alternativ för nodverktyget — Inkscapes nybörjarguide
- Om nodtyper — Inkscapes nybörjarguide
- Nodverktyget — hjälpen för Affinity Designer 2
- Redigera kurvor och former — hjälpen för Affinity Designer 2
