Vector/pl

From Second Life Wiki
Jump to navigation Jump to search

Vector

Vector (wektor) jest typem danych, który zawiera uporządkowany zbiór trzech wartości typu rzeczywistego. Każdy element tego zbioru może być adresowany oddzielnie, poprzez dodanie przyrostka .x, .y lub .z do nazwy zmiennej.

Wektory mogą być użyte do przechowania następujących wartości:

  • Pozycji: x, y i z są wyrażone w metrach.
  • Prędkość: x, y i z przedstawiają składowe prędkości.
  • kolor: Czerwony to x, Zielony to y, a Niebieski to z.

Na wektorach można wykonywać następujące działania:

  • Dodawanie, operator "+"
  • Odejmowanie, operator "-"
  • Mnożenie (iloczyn skalarny), operator "*"
  • Iloczyn kartezjański, operator "%"

Żeby obrócić wektor, można go pomnożyć lub podzielić przez kwaternion.

Przykład

<lsl> default {

   touch_start(integer num)
   {
       vector test=<1.0, 2.0, 3.0>;

llOwnerSay((string)test.z); // Wypisuje 3.0 llOwnerSay((string)test.y); // Wypisuje 2.0 llOwnerSay((string)test.x); // Wypisuje 1.0

       }

} </lsl>

Przykład drugi

<lsl> vector minusvector=<0,0,0.2>; vector plusvector=<0,0,0.2>; default {

  touch_start(integer num_detected) //Gdy nacisnie na obiekt
  {
    llSetPos(llGetPos() + plusvector); // To zbierz pozycje i dodaj wektor
   }
   touch_end(integer num_detect) //Gdy puszcze obiekt
   { 
       llSetPos(llGetPos() - minusvector); // To zbierz nowa pozycje i odejmij wektor

} } </lsl>