Wektory na stronach

Technologie stosowane w dokumentach WWW dają ich autorom spore możliwości, takie jak tworzenie napisów, ramek, tabelek, dynamicznych menu, używanie obrazków czy apletów Javy. Jednak do tej pory nie powstał uniwersalny sposob przedstawiania grafiki wektorowej na stronach internetowych. Ma ona kilka zalet w stosunku do rysunków bitowych (GIF, JPG). Najważniejsza to możliwość dowolnego powiększania takiego rysunku bez pogorszenia jego jakości. Obrazek wektorowy nie ulega pogorszeniu także po przeprowadzeniu na nim dowolnych operacji typu obracanie, ściskanie czy zmiana proporcji. Można także modyfikować jego wybrane części – m.in. zamienić dowolne detale, zmieniać wypełniania, dodawać cienie – wszystko to bez potrzeby tworzenia rysunku od nowa. Co najważniejsze – w przypadku sporych ilustracji plik z taką grafiką zajmuje mniej miejsca niż obrazek bitowy. A małe rozmiary – przekładające się bezpośrednio na czas transmisji, są dużą zaletą w przypadku dokumentów internetowych.

World Wide Web Consortium – organizacja zajmująca się wyznaczaniem standardów dotyczących WWW – już jakiś czas temu podjęła próbę opracowania języka opisu grafiki wektorowej. Specjaliści z Netscape’a IBM-a, SUN-a oraz Adobe stworzyli specyfikację Precision Graphics Markup Language. Jednak do tej pory PGML (CHIP 1/99, s. 204) nie zyskał wsparcia w żadnym komercyjnym produkcie. Po około roku pojawiła się kolejna propozycja języka opisu grafiki wektorowej – Vector Markup Language.

Integracja

VML został zdefiniowany w XML. Konsekwencją tego jest tekstowy charakter języka i możliwość używania jego poleceń w dokumentach HTML-owych. Vector Markup Language został opracowany tak, aby maksymalnie “wtopić się” w istniejące standardy, takie jak HTML oraz CSS. Ten pierwszy służy do definiowania napisów w obiektach VML-a. Ich wygląd z kolei określany jest przez style kaskadowe, które jednocześnie są używane w VML-u na przykład do opisania położenia obiektów tworzonych w tym języku. Dzięki tej filozofii elementy wektorowe są traktowane identycznie z pozostałymi częściami dokumentu HTML (tekst, tabelki czy obrazki), a przeglądarki WWW obsługujące VML-a nie będą wymagały zasadniczych zmian, lecz wyłącznie niewielkiej modyfikacji.

Podstawy

Podstawowe elementy VML-a to SHAPETYPE oraz SHAPE. Ten pierwszy pozwala na tworzenie obiektów, które mogą być później wykorzystane bez potrzeby ponownego opisywania ich wyglądu. Co więcej – podczas definiowania kształtów możemy stosować parametry pozwalające na ich późniejszą modyfikację. Tworzenie sparametryzowanych obiektów przypomina pisanie funkcji w języku programowania. Największa różnica dotyczy nietypowego sposobu zapisywania wzorów matematycznych (patrz dalej: Trochę matematyki).

Kody HTML-a i VML-a są analizowane równolegle, po czym każdy z nich tworzy obiektowy model swojej zawartości. Moduł obsługi stylów kaskadowych “rozmieszcza” elementy we właściwych miejscach dokumentu i całość jest wyświetlana lub drukowana z użyciem mechanizmów systemowych.

Podstawowy element każdej definicji to ścieżka (PATH). Jest to ciąg komend przeznaczonych dla wirtualnego pisaka rysującego zadany kształt na ekranie. Przekazywane mu polecenia mogą dotyczyć jego przesuwania, rysowania linii, krzywych Béziera, elips, okręgów i innych. Dla każdego kształtu określamy także kolor i rodzaj wypełnienia oraz rodzaj linii obrysu.

W tworzeniu skomplikowanych rysunków możemy posługiwać się kształtami zdefiniowanymi samodzielnie, jak również używać kilku predefiniowanych typów. Należą do nich: linia prosta, łamana, krzywa Béziera, prostokąt, elipsa oraz obrazek. Obiekty – zarówno własne, jak i już istniejące – można grupować, tworząc bardziej zaawansowane.

Jedna z ważniejszych cech VML-a dotyczy stosowanego układu współrzędnych. Jak wspomnieliśmy, do ustalania położenia na stronie WWW kształtów tworzonych w VML-u służą style. Wynika z tego, że obiekt musi posługiwać się wewnętrznym systemem określającym położenie jego elementów składowych. Służą do tego atrybuty COORDSIZE oraz COORDORIGIN. Pierwszy z nich określa wymiary obiektu wyrażone w jednostkach wewnętrznych, a drugi definiuje współrzędne lewego górnego rogu. Jeśli zdefiniujemy grupę obiektów następującą komendą:

<VnullGROUP STYLE='width: 300px; height  250px' COORDSIZE='800,800' COORDORIGIN='-200,-400'>

to na ekranie będzie ona miała rozmiary 300 na 250 pikseli. Jej wewnętrzny rozmiar to 800 na 800, środek układu współrzędnych znajdzie się dwieście jednostek od lewego brzegu i dokładnie na środku, pomiędzy górną a dolną krawędzią. Wszystkie obiekty składowe grupy będą się posługiwały takim samym układem. Jeśli w jakiś sposób – na przykład przez język skryptowy – obiekty zmienią swoje położenie na stronie WWW, wewnętrzne współrzędne pozostaną takie same.

INFO
Grupy dyskusyjne
Uwagi i komentarze do artykułu: #
Pytania techniczne do zagadnień poruszanych w tekście:
#
Internet
VML:http://www.w3.org/TR/1998/NOTE-VML-19980513
W dziale Internet | VML znajduje się specyfikacja VML-a
Więcej:bezcatnews