VRMLed - uDner Cnossstrucion


Wstęp*
Koncepcja*
FCAF*
Teksty*
Światła*
Dźwięki*
*Three Dots

* Teksty - jak umieścić na scenie VRML napisy
*Do umieszczania w świecie VRML napisów służą węzły Text oraz FontStyle. Z pomocą pierwszego wprowadzamy co ma zostać napisane, drugi natomiast służy do określenia parametrów czcionek, kierunku wyświetlania itd. Oto ich definicje:
Text { 
  exposedField MFString string    []
  exposedField SFNode   fontStyle NULL
  exposedField MFFloat  length    []
  exposedField SFFloat  maxExtent 0.0
}
FontStyle { 
  field MFString family      "SERIF"
  field SFBool   horizontal  TRUE
  field MFString justify     "BEGIN"
  field SFString language    ""
  field SFBool   leftToRight TRUE
  field SFFloat  size        1.0
  field SFFloat  spacing     1.0
  field SFString style       "PLAIN"
  field SFBool   topToBottom TRUE
}

*Najpierw zajmiemy się węzłem Text. W polu string powinniśmy umieścić tekst który powinien zostać wyświetlony. Pole fontStyle to miejsce na węzeł FontStyle. Pozostawienie w tym miejscu wartości NULL spowoduje iż napis nie ukaże się. W polu length możemy zdefiniować jaką długość powinny posiadać poszczególne linijki tekstu. Ciekawe jest pole maxExtent które określa jak długa może być najwyższa linia tekstu. Jeśli w rzeczywistości jest ona dłuższa niż podana wartość cały blok tekstu zostanie ściśnięty. Zagmatwane? Jasne. Ale od czegóż przykłady.
Od tej chwili źródła przykładów nie będą już podawane na stronie, bo zajęłoby to za dużo miejsca. Za to pod przykładami będą umieszczone odnośniki do źródeł, które będzie można zachować.

Źródło

*W powyższym przykładzie przeglądarka sformatowała tekst zgodnie z wartościami domyślnymi wszystkich pól (oprócz wypełnionych przez nas string i fontStyle). W następnym przykładzie użyjemy pola length a w kolejnym maxExtent.

Źródło

Źródło

*W drugim przykładzie linie mają długości, odpowiednio: 4 5 5.5, zgodnie z podanymi w polu length. W przykładzie trzecim natomiast wartością pola maxExtent jest 4, co oznacza że najdłuższa linia bloku ma mieć długość 4. Ponieważ jednocześnie podaliśmy wartości pola length więc najdłuższa linia ma długość 5.5. Cały blok tekstu zostanie zatem ściśnięty. Można porówanać, że długość linii "W liniach paru" jest taki jak linii "Tekst" w przykładzie powyżej, czyli 4.

*Teraz zajmiemy się węzłem FontStyle. Pole family definiuje rodzaj użytej czcionki. Może ono przyjmować następujące wartości: SERIF dla czcionki szeryfowej, SANS dla czcionki bezszeryfowej oraz TYPEWRITER dla czcionki nieproporcjonalnej. Pole style określa styl czcionki. Akceptowane wartości to PLAIN - czcionka zwykła, BOLD - wytłuszczona, ITALIC - pochylona oraz BOLDITALIC - pochylona i wytłuszczona. Pole size odpowiada za rozmiar czcionki, natomiast pole spacing za odstępy pomiędzy liniami bazowymi kolejnych linijek tekstu. Pole language określa w jakim języku jest pisany tekst. Pola justify, leftToRight, topToBottom oraz horizontal określają typ wyrównania oraz wypisywania tekstu. Jeśli pole horizontal ma wartość TRUE tekst wypisywany jest poziomo, jeśli zaś ma wartość FALSE - pionowo. Jeśli pole leftToRight ma wartość TRUE litery pisane są z lewa na prawo, jeśli zaś wartość FALSE - z prawa na lewo. Pole topToBottom z ustawioną wartością TRUE powoduje wyświetlanie kolejnych linii tekstu z góry na dół, zaś z wartością FALSE - z dołu do góry. W zależności od wartości tych pól interpretowana jest wartość pola justify, powodującego wyrównywanie tekstu. Przedstawia to poniższa tabela.

horizontalTRUEFALSE
leftToRightTRUEFALSETRUEFALSE
topToBottomTRUEFALSETRUEFALSETRUEFALSETRUEFALSE
justify=FIRSTAGAGBGBGDLELDMEM
justify=BEGINAHAIBHBIDLELDMEM
justify=MIDDLECFCFCFCFFCFCFCFC
justify=ENDBJBKAJAKEODOENDN

*Pierwsza litera w każdej komórce tabeli określa sposób wyrównania każdej linii z osobna, natomiast druga litera specyfikuje w jaki sposób zostanie ułożony cały blok tekstu. Oto znaczenia liter:

*A. Lewa krawędź każdej linii
*B. Prawa krawędź każdej linii
*C. Wycentrowana względem osi X
*D. Górna krawędź każdej linii
*E. Dolna krawędź każdej linii
*F. Wycentrowana względem osi Y
*G. Linia bazowa pierwszej linii
*H. Górna krawędź pierwszej linii
*I. Dolna krawędź pierwszej linii
*J. Dolna krawędź ostatniej linii
*K. Górna krawędź ostatniej linii
*L. Lewa krawędź pierwszej linii
*M. Prawa krawędź pierwszej linii
*N. Lewa krawędź ostatniej linii
*O. Prawa krawędź ostatniej linii

*Poniżej przedstawiam wszystkie przypadki z tabeli. Pierwszy przykład dla pola horizontal o wartości TRUE, drugi dla pola horizontal o wartości FALSE. Ponieważ są dość duże niezbędne jest obejrzenie ich na pełnym ekranie. Czerwonym krzyżem zaznaczony jest środek lokalnego układu współrzędnych w którym rysowany jest tekst.

Przykład dla horizontal TRUE
Przykład dla horizontal FALSE

*Na koniec coś ekstra. Pamiętacie napisy początkowe Gwiezdnych Wojen? A więc... Star Wars Scroller w wykonaniu VRMLowym, panoramicznym, stereo i w kolorze!

Źródło



E-mail to: coding@poczta.onet.pl