RG 14 3D Geometrijske Transformacije

Embed Size (px)

Citation preview

  • 1Raunarskagrafika

    predavanjadoc.dr. Samir [email protected]

    15. Geometrijske transformacije

    Homogene koordinate 3D Primitivi Bulove operacije 2D-3D operacije 3D translacija 3D rotacija 3D skaliranje

    Homogene koordinate

    Prikazu take sa tri koordinate (x,y,z) se dodaje homogena koordinata (x,y,z,h)

    Homogenizacija koordinata je transformacija take (x y z h) utransformacija take (x,y,z,h) u (x/h,y/h,z/h,1)

    Bar jedna homogena koordinata mora biti razliita od nule; (0,0,0,0) nije dozvoljena

    h=0 daje take "u beskonanosti"

    3D Primitivi

    U 3D vektorskoj grafici, slika se sastoji od primitiva: osnovnih geometrijskih tijela koja kombinovanjem daju sloenije oblike.

    Za kombinovanje se koriste operacije Za kombinovanje se koriste operacije Bulove algebre.

    3D Primitivi

    3D taka:

    3D pravac:

    1 2 3 4( , , ) ( ', ', ', ) ( , , , )V x y z X x y z h ili X x x x x

    1 2 3

    4 4 4

    x x xx y zx x x

    3D pravac:

    implicitni oblik:

    u homogenim koordinatama:

    homogena jednaina:

    31 2

    4 4 4

    0xx xa b c dx x x

    1 2 3 4 0a x b x c x d x

    0a x b y c z d

    3D Primitivi

    U matrinom obliku: 3D taka:

    1 Txy

    x y z

    3D pravac:

    11

    x y zz

    1 1 0ab

    a x b y c z d x y zcd

  • 23D primitivi Kvadar (kocka)

    Elipsoid (sfera)

    Konus

    Cilindar

    Torus

    Bulove operacije

    Kombinovanjem 3D primitiva dobiju se sloeniji oblici

    Koriste se 3 operacije: unija presjek i razlikaunija, presjek i razlika

    Bulove operacije

    Zadatak: a) Koji primitivi su potrebni da bi se napravio oblik kao na desnoj slici?b) Koliko je potrebno operacija razlike?b) Koliko je potrebno operacija razlike?

    Bulove operacije

    Bulove operacije se mogu vriti i na 2D konturama i na 3D objektima.

    2D konture se mogu nakon toga koristiti kao osnova za formiranje 3D geometrijekao osnova za formiranje 3D geometrije.

    2D-3D operacije

    Neke geometrijske oblike nije mogue dobiti kombinovanjem 3D primitiva.

    Tada se koriste 2D-3D operacije koje od 2D kontura generiu prostorne oblike2D kontura generiu prostorne oblike.

    2D-3D operacije

    Extrude Translacijom 2D konture

    dobija se prizmatini oblikT l ij d d ti ili Translacijom se moe dodavati ili oduzimati materijal

  • 32D-3D operacije

    Revolve Rotacija 2D konture oko ose

    2D-3D operacije

    Loft Transformacija jedne u drugu 2D konturu;

    trag koji se pri tome ostavlja predstavljaostavlja predstavlja 3D tijelo

    2D-3D operacije

    Sweep 2D kontura se kree

    po krivoj liniji, tako da jedna takada jedna taka konture prati krivulju, a ravan konture je uvijek okomita na krivulju.

    3D translacija

    1 0 00 1 0

    ( , , )0 0 10 0 0 1

    x

    yx y z

    z

    dd

    T d d dd

    ( , , ) 1 1 TTx y z x y zT d d d x y z x d y d z d

    3D rotacija

    cos sin 0 0i 0 0 1 0 0 00 i 0

    Matrice kojim se mnoi matrica koordinata take za rotaciju oko ose x, y ili z:

    sin cos 0 0( )

    0 0 1 00 0 0 1

    zR

    0 cos sin 0( )

    0 sin cos 00 0 0 1

    xR

    cos 0 sin 00 1 0 0

    ( )sin 0 cos 00 0 0 1

    yR

    3D skaliranje0 0 0

    0 0 0( , , )

    0 0 00 0 0 1

    x

    yx y z

    z

    ss

    S s s ss

    ( , , ) 1 1 TTx y z x y zS s s s x y z s x s y s z