Metlivi-blog

Bestaande vectorpunten uitlijnen langs een schuine lijn

Om bestaande vectorpunten langs een schuine lijn uit te lijnen, definieer je de lijn met twee vaste referentiepunten en verplaats je de overige punten ernaartoe. Bereken voor een nauwkeurige plaatsing hun coördinaten en voer deze afzonderlijk in. Voor interactieve bewerking kun je elk punt laten vastklikken op een tijdelijk recht referentiepad.

Deze tutorial is bedoeld voor iemand die een bestaande contour of een detail van een vectorpersonage wil verfijnen en de bestaande punten wil behouden. De belangrijkste werkwijze maakt gebruik van de coördinatenvelden van Inkscape; een alternatief legt uit hoe je geometrisch vastklikken toepast in Affinity Designer 2. Voor geen van beide methoden hoef je het artwork opnieuw op te bouwen.

29 oktober 20268 min leestijdDoor Metlivi Editorial Team
Sectie 1

Bepaal vóór het uitlijnen van punten wat vast moet blijven

Kies twee referentiepunten, A en B, die de gewenste helling bepalen. Ze kunnen de uiteinden markeren van een recht deel binnen een grotere contour van een personage. Noteer hun coördinaten en laat ze ongewijzigd terwijl je de tussenliggende punten verplaatst.

Bepaal vervolgens hoe die tussenliggende punten moeten bewegen. ‘Langs een lijn uitlijnen’ beschrijft de bestemming, maar geeft niet aan in welke richting de punten moeten bewegen. Drie handige keuzes zijn:

Plaatsingsregel Wat behouden blijft Wanneer kiezen
De X-coördinaat van elk punt behouden De bestaande horizontale positie De puntposities al overeenkomen met horizontale referentieposities
De Y-coördinaat van elk punt behouden De bestaande verticale positie De verticale positie belangrijker is dan de horizontale
Loodrecht naar de lijn verplaatsen De kortste verplaatsing voor elk punt Je zijwaartse afwijking van de gewenste lijn wilt verwijderen

Deze regels kunnen verschillende resultaten opleveren, ook al ligt elk resulterend punt op dezelfde lijn. Gelijke afstanden vormen een aparte bewerking: uitlijnen maakt de tussenruimtes niet vanzelf gelijk. De documentatie van Inkscape beschrijft horizontaal of verticaal uitlijnen en verdelen op gelijke afstand afzonderlijk. Uitlijnen en verdelen — Beginnershandleiding van Inkscape

Sectie 2

Selecteer bestaande punten zonder de hele vorm te verplaatsen

Activeer in Inkscape het gereedschap Punten met N of F2 en klik vervolgens op het bestaande pad om de punten weer te geven. Klik op het specifieke punt dat je wilt verplaatsen. Met het gereedschap Punten bewerk je de padgeometrie, waaronder puntposities en de handgrepen die aangrenzende segmenten bepalen. Paden bewerken met het gereedschap Punten — Beginnershandleiding van Inkscape

Sla vóór het bewerken een werkkopie op en noteer welke punten bij het betreffende deel horen. Een handige notitie bevat de coördinaten van A en B, de oorspronkelijke coördinaten van elk punt dat je gaat verplaatsen en de gekozen plaatsingsregel. Zo kun je de bewerking herhalen en het resultaat eenvoudig vergelijken.

Gebruik voor de onderstaande werkwijze met coördinaten een selectie van één punt tegelijk. Inkscape toont in de bedieningselementen van het gereedschap Punten velden voor X en Y en een keuzelijst voor de coördinaateenheid. Als je telkens één punt selecteert, is de beoogde coördinatenwijziging duidelijk. Opties van het gereedschap Punten — Beginnershandleiding van Inkscape

Gebruik geen opdracht voor het uitlijnen van objecten als de taak betrekking heeft op punten binnen één pad. De gedocumenteerde uitlijnmethode van Inkscape verandert afhankelijk van of het gereedschap Punten of Selecteren actief is. Uitlijnen en verdelen — Beginnershandleiding van Inkscape

Sectie 3

Bereken exacte posities met behoud van de horizontale plaatsing

Voor een schuine lijn door A = (Ax, Ay) en B = (Bx, By) ligt een punt met horizontale coördinaat x op de lijn als:

y = Ay + (x − Ax) × (By − Ay) / (Bx − Ax)

Deze vergelijking biedt een praktische uitlijnmethode wanneer de X-coördinaat van elk punt ongewijzigd moet blijven. Het gaat om een meetkundige berekening, niet om een speciale opdracht in de editor.

Neem deze uitdrukkelijk illustratieve coördinaten, allemaal uitgedrukt in dezelfde documenteenheid: A = (20, 30) en B = (100, 70). Het horizontale verschil is 80 en het verticale verschil is 40, dus de vergelijking van de lijn wordt:

y = 30 + (x − 20) × 0.5

Stel dat drie bestaande tussenliggende punten de volgende coördinaten hebben. Als je hun X-waarden behoudt, zijn dit de doelposities:

Punt Oorspronkelijke positie Doelpositie
P1 (40, 50) (40, 40)
P2 (60, 40) (60, 50)
P3 (80, 65) (80, 60)

Pas de doelposities toe in Inkscape:

  1. Selecteer alleen P1 met het gereedschap Punten.
  2. Controleer of de coördinaateenheid overeenkomt met je berekening.
  3. Laat X op 40 staan en voer voor Y de waarde 40 in.
  4. Selecteer alleen P2 en voer Y = 50 in, met X = 60.
  5. Selecteer alleen P3 en voer Y = 60 in, met X = 80.
  6. Controleer A en B opnieuw aan de hand van de genoteerde coördinaten.

De drie punten liggen nu op de lijn die door de ongewijzigde referentiepunten wordt bepaald. Hun gelijke horizontale afstanden in dit voorbeeld komen door de gekozen voorbeeldcoördinaten; de uitlijnberekening zelf maakt de afstanden niet gelijk.

Deze formule kan X niet behouden op een verticale doellijn, omdat Bx − Ax dan nul is. Stel bij een verticale lijn de X-coördinaat van elk doelpunt in op Ax. Bij een bijna verticale lijn kan het nuttiger zijn om Y te behouden, omdat een klein horizontaal verschil kan overeenkomen met een grote verticale verplaatsing.

Gebruik x = Ax + (y − Ay) × (Bx − Ax) / (By − Ay) om in plaats daarvan Y te behouden. In die versie moeten By en Ay van elkaar verschillen. Lees alle coördinaten uit dezelfde velden en eenheden in de editor; combineer geen documentcoördinaten met metingen uit een schermafbeelding.

Sectie 4

Gebruik loodrechte projectie voor de kleinst mogelijke verplaatsing

Als X en Y allebei mogen veranderen, geeft loodrechte projectie het dichtstbijzijnde punt op de oneindig lange doellijn. Dit is handig wanneer tussenliggende punten licht zijn verschoven rond een verder correct schuin deel.

Bereken voor een bestaand punt P = (Px, Py) eerst de richtingsvector van de lijn:

dx = Bx − Ax

dy = By − Ay

Bereken vervolgens de positie langs de lijn en de geprojecteerde coördinaten:

t = ((Px − Ax) × dx + (Py − Ay) × dy) / (dx² + dy²)

Qx = Ax + t × dx

Qy = Ay + t × dy

Met dezelfde illustratieve referentiepunten en oorspronkelijke punten krijg je:

Punt Oorspronkelijke positie Loodrechte doelpositie
P1 (40, 50) (44, 42)
P2 (60, 40) (56, 48)
P3 (80, 65) (82, 61)

Voer voor elk punt beide doelcoördinaten afzonderlijk in. Deze waarden zijn gecontroleerd met een kleine deterministische Python-berekening. Ze illustreren de meetkunde en zijn geen metingen uit een specifiek personagebestand.

Er zijn twee voorwaarden van belang. Ten eerste moeten A en B verschillende punten zijn: samenvallende referentiepunten maken de noemer nul en definiëren geen lijn. Ten tweede projecteert deze berekening op een oneindig lange lijn. Een t-waarde tussen 0 en 1 plaatst het resultaat tussen A en B; een waarde buiten dat bereik plaatst het voorbij een van de eindpunten.

Als een geprojecteerd punt buiten het bedoelde deel terechtkomt, controleer dat punt dan voordat je het verplaatst. Het automatisch naar het dichtstbijzijnde eindpunt dwingen zou punten op elkaar stapelen en de bedoelde plaatsing veranderen. De formule alleen lost ook niet het probleem op van een bestaand pad waarvan de punten in verbindingsvolgorde heen en weer lopen.

Sectie 5

Punten laten vastklikken op een schuin referentiepad in Affinity Designer 2

Voor een klein aantal punten kan een tijdelijk referentiepad handiger zijn dan coördinaten berekenen. In de documentatie van Affinity Designer 2 staat voor het gereedschap Punten een optie met de naam Vastklikken aan geometrie van geselecteerde krommen. Die laat een verplaatst punt vastklikken op het pad of een punt van een geselecteerde kromme. De instellingen voor het vastklikken van punten werken onafhankelijk van het algemene vastklikken. Gereedschap Punten — Help van Affinity Designer 2

De volgende werkwijze past deze gedocumenteerde functie toe op deze uitlijntaak:

  1. Maak een aparte rechte referentiekromme met de gewenste helling, die door de twee referentieposities loopt.
  2. Selecteer de illustratiekromme en de referentiekromme met het gereedschap Punten.
  3. Schakel Vastklikken aan geometrie van geselecteerde krommen in op de contextuele werkbalk.
  4. Selecteer één illustratiepunt om te verplaatsen en sleep het naar de referentiekromme.
  5. Controleer of het vastklikt op het bedoelde deel van de referentiegeometrie.
  6. Herhaal dit voor de overige punten en laat de twee referentiepunten vast staan.
  7. Verwijder de tijdelijke kromme nadat je het resultaat hebt gecontroleerd.

Gebruik een referentiesegment dat lang genoeg is om alle bedoelde bestemmingen te omvatten. Controleer bij de eindpunten of een punt daar is vastgeklikt in plaats van op de gewenste tussenliggende positie.

Door een punt naar een pad te slepen, plaats je het op dat pad; daarmee wordt op zichzelf niet bepaald of het loodrecht wordt geprojecteerd of dat X of Y behouden blijft. Gebruik berekende coördinaten wanneer die voorwaarden van belang zijn. In de documentatie van Affinity Designer 2 staat ook hoe je afzonderlijke punten verplaatst via het paneel Transformeren. Krommen en vormen bewerken — Help van Affinity Designer 2

Sectie 6

Controleer Bézier-handgrepen als de contour nog steeds gebogen lijkt

Uitgelijnde punten leveren niet noodzakelijk een rechte zichtbare contour op. Bézier-handgrepen bepalen de vorm van de verbindende segmenten, dus een segment kan van de doellijn afbuigen, zelfs als de twee punten erop liggen. Paden bewerken met het gereedschap Punten — Beginnershandleiding van Inkscape

Controleer elk verbindend segment afzonderlijk. Als je alleen wilt dat de ankerpunten zijn uitgelijnd, behoud dan de gewenste kromming. Als het deel zelf recht moet zijn, moeten ook de handgrepen passend worden aangepast: gebruik rechte segmenten of plaats de betreffende controlepunten op de doellijn zonder een overshoot te veroorzaken.

Houd bij de twee referentiepunten rekening met de aangrenzende contour voordat je de punttypen wijzigt. Met hoekpunten in Inkscape kunnen handgrepen onafhankelijk worden verplaatst, terwijl bij vloeiende punten beide handgrepen in elkaars verlengde door het punt lopen. Symmetrische punten houden de handgrepen bovendien even lang. Die beperkingen beïnvloeden hoe een recht deel aansluit op een aangrenzende kromme. Over punttypen — Beginnershandleiding van Inkscape

Bij een hoek waar het rechte deel op een kromme aansluit, kunnen onafhankelijke handgrepen handig zijn. Behoud voor een vloeiende overgang de gewenste raakrichting. Als je elk punt op hetzelfde type instelt, kunnen omliggende details van het personage onnodig veranderen.

Sectie 7

Controleer de uitlijning voordat je het referentiepad verwijdert

Controleer het resultaat aan de hand van de taak die je in het begin hebt gekozen:

  • Referentiepunten: A en B hebben nog steeds hun genoteerde coördinaten.
  • Plaatsingsregel: Punten behouden X, behouden Y of staan op hun berekende loodrechte doelposities.
  • Omvang: Elk tussenliggend punt ligt binnen het bedoelde deel.
  • Padvolgorde: De verbonden punten lopen zoals bedoeld door het deel.
  • Segmentvorm: Krommingen en overgangen komen overeen met de gewenste contour.
  • Nauwkeurigheid: Afronding van coördinaten heeft geen zichtbare afwijking veroorzaakt.

Voor het uitgewerkte voorbeeld moet elk uitgelijnd coördinatenpaar voldoen aan y = 0.5x + 20, binnen de gebruikte invoernauwkeurigheid. Zo kun je het resultaat numeriek controleren, onafhankelijk van hoe het eruitziet. Bekijk het personage ook op de beoogde weergavegrootte, want het bewerkte deel moet nog steeds bij het omringende ontwerp passen.

Houd de twee referentiepunten vast, kies bewust de verplaatsingsregel en controleer na het positioneren van de punten de verbindende segmenten. Zo kun je een bestaand schuin deel op een herhaalbare manier uitlijnen en tegelijk de rest van de contour van het personage onder controle houden.

Sectie 8

Bronnen

Gerelateerde artikelen

Blijf dit onderwerp verkennen