Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

SVG: Ścieżki – łuk okręgu

poniedziałek,

SVG: Ścieżki – łuk okręgu

W formacie SVG najbardziej uniwersalnym elementem wizualnym jest ścieżka (path). Jej najistotniejszym atrybutem jest d, który zawiera komendy i argumenty. Komenda A służy do rysowania łuku eliptycznego między aktualnym punktem i punktem, którego współrzędne zdefiniowano w ostatnim argumencie komendy. Wymaganych jest siedem parametrów.

A rx ry x-axis-rotation large-arc-flag sweep-flag x y

  • rx i ry – półosie elipsy;
  • x-axis-rotation – kąt obrotu elipsy;
  • large-arc-flag – wybór dużego (1) lub małego (0) łuku;
  • sweep-flag – wybór łuku zgodnego z ruchem wskazówek zegara (1) lub przeciwnie (0);
  • x i y – współrzędne końca łuku.

Elipsa o równych półosiach to okrąg: rx = ry = promień okręgu. W przypadku okręgu parametr x-axis-rotation nie ma sensownego zastosowania (można zadeklarować dowolną wartość, najlepiej 0 – przy analizie kodu wygląda jednoznacznie).

Mając dane współrzędna początku i końca łuku oraz promień okręgu można rozważać dwa łuki dwóch okręgów, daje to łącznie cztery możliwości. Do dokładnego wskazania, który łuk ma być narysowany służą parametry large-arc-flag oraz sweep-flag.

W poniższych przykładach zmianie nie ulegają współrzędne początku (210,190) i końca łuku (390,370), wartość promienia (rx = ry = 180) oraz kąt obrotu (x-axis-rotation=0). Komenda M służy do ustawienia bieżącego punktu rysowania. Jak wspomniano wcześniej, parametry large-arc-flag oraz sweep-flag mogą przyjąć wartość jeden lub zero, co daje cztery łuki możliwe do narysowania.

M210,190
A 180 180 0 0 1 390,370

M210,190
A 180 180 0 0 0 390,370

M210,190
A 180 180 0 1 0 390,370

M210,190
A 180 180 0 1 1 390,370

Poniżej zaprezentowano praktyczny przykład rysowania łuku, wykorzystano go do utworzenia okien. W prezentowanej ścieżce argument d zawiera m.in. komendę L służącą do rysowania linii prostej, a także komendę Z – zakończenie ścieżki poprzez połączenie aktualnego punktu z punktem początkowym.

Poniżej znajduje się kod przykładu zapisany formacie SVG. Możesz go wkleić do edytora tekstowego (np. notatnika) i zapisać z rozszerzeniem svg lub wstawić do kodu strony internetowej.

<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
  <defs>
   <g id="window">
    <path fill="#343434" d="M0,100 A 100 100 0 0 1 200,100
      L200,300 L0,300 Z" />
    <line x1="0" y1="120" x2="200" y2="120"
      stroke="#e4c29b" stroke-width="10" />
    <line x1="100" y1="0" x2="100" y2="300"
      stroke="#e4c29b" stroke-width="10" />
   </g>	
  </defs>
  <rect x="10" y="10" width="980" height="500" fill="#e4c29b" />
  <use href="#window" transform="translate(40,50)" />
  <use href="#window" transform="translate(280,50)" />
  <use href="#window" transform="translate(520,50)" />
  <use href="#window" transform="translate(760,50)" />
</svg>
Artykuł: Harmonogram egzaminów maturalnych

Harmonogram egzaminów maturalnych

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły