Blog Metlivi

Jak wyrównać istniejące węzły wektorowe wzdłuż ukośnej linii

Aby wyrównać istniejące węzły wektorowe wzdłuż ukośnej linii, wyznacz ją za pomocą dwóch stałych punktów odniesienia, a następnie przesuń na nią pozostałe węzły. Aby precyzyjnie je umieścić, oblicz ich współrzędne i wprowadź je pojedynczo. Przy edycji interaktywnej przyciągaj każdy węzeł do tymczasowej prostej ścieżki odniesienia.

Ten poradnik jest przeznaczony dla osób dopracowujących istniejący wektorowy kontur postaci lub detal z zachowaniem jego węzłów. Główna metoda wykorzystuje pola współrzędnych w Inkscape; alternatywna opisuje przyciąganie do geometrii w Affinity Designer 2. Żadna z tych metod nie wymaga ponownego tworzenia grafiki.

29 października 20268 min czytaniaAutor: Metlivi Editorial Team
Sekcja 1

Zdecyduj, co ma pozostać nieruchome przed wyrównaniem węzłów

Wybierz dwa węzły odniesienia, A i B, które wyznaczają oczekiwane nachylenie. Mogą one oznaczać końce prostego odcinka w większym konturze postaci. Zapisz ich współrzędne i pozostaw je bez zmian podczas przesuwania węzłów pośrednich.

Następnie zdecyduj, jak mają przesuwać się węzły pośrednie. „Wyrównaj wzdłuż linii” określa położenie docelowe, ale nie kierunek przesunięcia. Przydatne są trzy możliwości:

Zasada położenia Co zachowuje Kiedy ją wybrać
Zachowaj współrzędną X każdego węzła Dotychczasowe położenie w poziomie Pozycje węzłów odpowiadają już poziomym położeniom odniesienia
Zachowaj współrzędną Y każdego węzła Dotychczasowe położenie w pionie Położenie w pionie ma większe znaczenie niż w poziomie
Przesuń prostopadle na linię Najkrótsze przesunięcie każdego węzła Chcesz usunąć odchylenie na boki od zamierzonej linii

Te zasady mogą dawać różne wyniki, mimo że każdy z uzyskanych węzłów leży na tej samej linii. Równomierne rozmieszczenie to osobna operacja: samo wyrównanie nie sprawia, że odstępy między węzłami stają się równe. Dokumentacja Inkscape osobno opisuje wyrównywanie w poziomie lub pionie oraz rozmieszczanie w równych odstępach. Wyrównywanie i rozmieszczanie — poradnik dla początkujących użytkowników Inkscape

Sekcja 2

Zaznacz istniejące węzły, nie przesuwając całego kształtu

W Inkscape włącz narzędzie Węzły klawiszem N lub F2, a następnie kliknij istniejącą ścieżkę, aby wyświetlić jej węzły. Kliknij węzeł, który chcesz przesunąć. Narzędzie Węzły służy do edycji geometrii ścieżki, w tym położenia węzłów i uchwytów sterujących sąsiednimi odcinkami. Edycja ścieżek za pomocą narzędzia Węzły — poradnik dla początkujących użytkowników Inkscape

Przed edycją zapisz kopię roboczą i zanotuj, które węzły należą do wybranego odcinka. Warto zapisać współrzędne A i B, pierwotne współrzędne każdego przesuwanego węzła oraz wybraną zasadę położenia. Dzięki temu operację można powtórzyć, a wynik łatwo porównać.

W poniższym sposobie opartym na współrzędnych zaznaczaj pojedynczy węzeł. W panelu sterowania narzędzia Węzły w Inkscape znajdują się pola X i Y oraz selektor jednostek współrzędnych. Zaznaczanie po jednym węźle pozwala jednoznacznie określić zmianę jego współrzędnych. Opcje narzędzia Węzły — poradnik dla początkujących użytkowników Inkscape

Jeśli zadanie dotyczy węzłów na ścieżce, nie używaj polecenia wyrównywania obiektów. Udokumentowany sposób wyrównywania w Inkscape działa inaczej zależnie od tego, czy aktywne jest narzędzie Węzły, czy narzędzie Zaznaczanie. Wyrównywanie i rozmieszczanie — poradnik dla początkujących użytkowników Inkscape

Sekcja 3

Oblicz dokładne położenie, zachowując położenie w poziomie

Punkt o współrzędnej poziomej x leży na ukośnej linii przechodzącej przez A = (Ax, Ay) i B = (Bx, By), jeśli spełnia równanie:

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

To równanie umożliwia praktyczne wyrównanie, gdy współrzędna X każdego węzła ma pozostać bez zmian. Jest to obliczenie geometryczne, a nie specjalne polecenie w edytorze.

Rozważmy następujące współrzędne, podane wyłącznie jako przykład i wyrażone w tej samej jednostce dokumentu: A = (20, 30) i B = (100, 70). Różnica współrzędnych poziomych wynosi 80, a pionowych 40, więc równanie linii ma postać:

y = 30 + (x − 20) × 0.5

Załóżmy, że trzy istniejące węzły pośrednie mają następujące współrzędne. Zachowując ich wartości X, otrzymujemy takie położenia docelowe:

Węzeł Położenie pierwotne Położenie docelowe
P1 (40, 50) (40, 40)
P2 (60, 40) (60, 50)
P3 (80, 65) (80, 60)

Wprowadź położenia docelowe w Inkscape:

  1. Zaznacz sam węzeł P1 za pomocą narzędzia Węzły.
  2. Sprawdź, czy jednostka współrzędnych jest zgodna z używaną w obliczeniach.
  3. Pozostaw X = 40 i wpisz 40 dla Y.
  4. Zaznacz sam węzeł P2, wpisz Y = 50 i pozostaw X = 60.
  5. Zaznacz sam węzeł P3, wpisz Y = 60 i pozostaw X = 80.
  6. Sprawdź, czy współrzędne A i B zgadzają się z zapisanymi wartościami.

Trzy węzły leżą teraz na linii wyznaczonej przez niezmienione punkty odniesienia. Ich równe odstępy w poziomie w tym przykładzie wynikają z przyjętych współrzędnych; samo obliczenie wyrównania nie zapewnia równych odstępów.

Tego wzoru nie można użyć do zachowania X, gdy linia docelowa jest pionowa, ponieważ Bx − Ax wynosiłoby zero. W przypadku linii pionowej ustaw współrzędną X każdego węzła docelowego na Ax. Przy linii niemal pionowej wygodniejsze może być zachowanie Y, ponieważ niewielkiej różnicy w poziomie może odpowiadać duże przesunięcie w pionie.

Aby zachować Y, użyj wzoru x = Ax + (y − Ay) × (Bx − Ax) / (By − Ay). Wymaga on, aby By i Ay były różne. Odczytuj wszystkie współrzędne z tych samych pól edytora i korzystaj z tego samego systemu jednostek. Nie mieszaj współrzędnych dokumentu z pomiarami wykonanymi na zrzucie ekranu.

Sekcja 4

Użyj rzutu prostopadłego, jeśli chcesz uzyskać najmniejsze przesunięcie

Jeśli nie musisz zachowywać ani X, ani Y, rzut prostopadły wyznacza najbliższy punkt na nieskończonej linii docelowej. Ta metoda przydaje się, gdy węzły pośrednie są nieznacznie przesunięte względem poza tym poprawnego ukośnego odcinka.

Dla istniejącego węzła P = (Px, Py) najpierw oblicz kierunek linii:

dx = Bx − Ax

dy = By − Ay

Następnie oblicz jego położenie wzdłuż linii i współrzędne rzutu:

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

Qx = Ax + t × dx

Qy = Ay + t × dy

Podstawienie tych samych przykładowych punktów odniesienia i pierwotnych węzłów daje:

Węzeł Położenie pierwotne Cel rzutu prostopadłego
P1 (40, 50) (44, 42)
P2 (60, 40) (56, 48)
P3 (80, 65) (82, 61)

Wprowadź osobno obie współrzędne docelowe każdego węzła. Wartości te sprawdzono za pomocą niewielkiego, deterministycznego obliczenia w Pythonie. Ilustrują geometrię; nie są pomiarami z konkretnego pliku postaci.

Ważne są dwa warunki. Po pierwsze, A i B muszą być różnymi punktami: pokrywające się punkty odniesienia powodują, że mianownik wynosi zero i nie wyznaczają linii. Po drugie, to obliczenie wyznacza rzut na nieskończoną linię. Wartość t między 0 a 1 umieszcza wynik między A i B; wartość poza tym zakresem umieszcza go za jednym z końców.

Jeśli rzutowany węzeł wypada poza zamierzonym odcinkiem, sprawdź go przed przesunięciem. Automatyczne przypisanie go do najbliższego końca spowodowałoby nałożenie się węzłów i zmieniłoby zamierzone położenie. Sam wzór nie rozwiązuje też problemu istniejącej ścieżki, której węzły w kolejności połączeń zawracają.

Sekcja 5

Przyciągaj węzły do ukośnej ścieżki odniesienia w Affinity Designer 2

W przypadku niewielu węzłów tymczasowa ścieżka odniesienia może być wygodniejsza niż obliczanie współrzędnych. Dokumentacja Affinity Designer 2 opisuje opcję narzędzia Węzły o nazwie Przyciągaj do geometrii zaznaczonych krzywych, która przyciąga przesuwany węzeł do ścieżki lub węzła zaznaczonej krzywej. Opcje przyciągania węzłów działają niezależnie od globalnego przyciągania. Narzędzie Węzły — pomoc Affinity Designer 2

Poniższy sposób wykorzystuje tę udokumentowaną funkcję do wyrównania:

  1. Utwórz osobną prostą krzywą odniesienia o wymaganym nachyleniu i poprowadź ją przez oba punkty odniesienia.
  2. Zaznacz krzywą grafiki i krzywą odniesienia za pomocą narzędzia Węzły.
  3. Włącz opcję Przyciągaj do geometrii zaznaczonych krzywych na pasku kontekstowym.
  4. Zaznacz do przesunięcia tylko jeden węzeł grafiki i przeciągnij go w kierunku krzywej odniesienia.
  5. Sprawdź, czy przyciągnął się do odpowiedniego miejsca na geometrii odniesienia.
  6. Powtórz czynność dla pozostałych węzłów, pozostawiając dwa węzły odniesienia nieruchome.
  7. Po sprawdzeniu wyniku usuń tymczasową krzywą.

Odcinek odniesienia powinien być wystarczająco długi, by obejmować wszystkie miejsca docelowe. W pobliżu jego końców sprawdź, czy węzeł nie trafił na koniec zamiast w wybrane miejsce wewnątrz odcinka.

Przeciągnięcie węzła na ścieżkę umieszcza go na niej, ale samo w sobie nie określa rzutu prostopadłego ani zachowania X lub Y. Jeśli te warunki mają znaczenie, użyj obliczonych współrzędnych. Dokumentacja Affinity Designer 2 opisuje również zmianę położenia poszczególnych węzłów za pomocą panelu Przekształć. Edycja krzywych i kształtów — pomoc Affinity Designer 2

Sekcja 6

Sprawdź uchwyty Béziera, jeśli kontur nadal wygląda na zakrzywiony

Wyrównane węzły nie muszą tworzyć prostego widocznego konturu. Uchwyty Béziera kontrolują kształt łączących je odcinków, dlatego odcinek może wyginać się poza linię docelową, nawet jeśli oba jego węzły na niej leżą. Edycja ścieżek za pomocą narzędzia Węzły — poradnik dla początkujących użytkowników Inkscape

Sprawdź osobno każdy łączący odcinek. Jeśli zadanie wymaga jedynie wyrównania położenia węzłów kotwiczących, zachowaj zamierzoną krzywiznę. Jeśli sam odcinek ma być prosty, trzeba też odpowiednio ustawić jego uchwyty: użyj prostych odcinków albo umieść odpowiednie punkty kontrolne na linii docelowej, unikając nadmiernego wygięcia.

Przy dwóch węzłach odniesienia uwzględnij sąsiedni kontur, zanim zmienisz typy węzłów. Węzły narożne w Inkscape pozwalają niezależnie przesuwać uchwyty, natomiast węzły gładkie utrzymują oba uchwyty w jednej linii przechodzącej przez węzeł. Węzły symetryczne dodatkowo zachowują jednakową długość uchwytów. Ograniczenia te wpływają na połączenie prostego odcinka z sąsiednim fragmentem krzywej. Informacje o typach węzłów — poradnik dla początkujących użytkowników Inkscape

Niezależne uchwyty mogą się przydać w narożniku, w którym prosty odcinek łączy się z krzywą. Przy płynnym przejściu zachowaj wymagany kierunek stycznej. Zmiana typu wszystkich węzłów na ten sam może niepotrzebnie zmienić otaczające detale postaci.

Sekcja 7

Sprawdź wyrównanie przed usunięciem punktu odniesienia

Sprawdź wynik pod kątem wybranych na początku założeń:

  • Punkty odniesienia: A i B nadal mają zapisane współrzędne.
  • Zasada położenia: Węzły zachowują X, zachowują Y albo zajmują obliczone położenia docelowe rzutu prostopadłego.
  • Zakres: Każdy węzeł pośredni leży na zamierzonym odcinku.
  • Kolejność ścieżki: Połączone węzły przechodzą przez odcinek w zamierzony sposób.
  • Kształt odcinka: Krzywizna i przejścia odpowiadają pożądanemu konturowi.
  • Precyzja: Zaokrąglenie współrzędnych nie spowodowało widocznych odchyleń.

W przykładzie każda wyrównana para współrzędnych powinna spełniać warunek y = 0.5x + 20 z dokładnością zastosowaną przy wprowadzaniu danych. To niezależny od wyglądu sposób sprawdzenia wyniku. Obejrzyj też postać w docelowym rozmiarze wyświetlania, ponieważ edytowany odcinek powinien nadal pasować do otaczającej grafiki.

Pozostaw dwa punkty odniesienia nieruchome, świadomie wybierz zasadę przesunięcia i po ustawieniu węzłów sprawdź łączące je odcinki. Dzięki temu można powtarzalnie wyrównać istniejący ukośny odcinek, zachowując kontrolę nad pozostałą częścią konturu postaci.

Sekcja 8

Źródła

Warto przeczytać

Eksploruj dalej ten temat