This shows you the differences between two versions of the page.
vdvac:lab5 [2025/10/06 14:47] anca.morar [Deformarea de forma libera] |
vdvac:lab5 [2025/10/06 15:56] (current) anca.morar [Demo] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Laboratorul 5 ====== | ====== Laboratorul 5 ====== | ||
- | ===== Deformarea de forma libera ==== | + | ===== Deformarea de forma libera ===== |
{{ :vdvac:lab5_fig1.png?500 |}} | {{ :vdvac:lab5_fig1.png?500 |}} | ||
Line 7: | Line 7: | ||
Cea mai generală metodă de deformare și cea mai adecvată animației obiectelor prin deformare | Cea mai generală metodă de deformare și cea mai adecvată animației obiectelor prin deformare | ||
Ideea | Ideea | ||
- | * obiectul care trebuie deformat e introdus într-uns pațiu deformabil(container) | + | * Obiectul care trebuie deformat e introdus într-uns pațiu deformabil(container) |
* Containerul se deformează => obiectul se deformează | * Containerul se deformează => obiectul se deformează | ||
+ | |||
+ | ==== Deformarea în 2D ==== | ||
+ | * Ecuația peticului bicubic Bezier: | ||
+ | |||
+ | {{ :vdvac:lab5_fig2.png?400 |}} | ||
+ | |||
+ | ==== Algoritmul de deformare ==== | ||
+ | - Se calculează dreptunghiul de încadrare al obiectului deformat, $x_{min}, x_{max}, y_{min}, y_{max}$ | ||
+ | - Pentru fiecare vârf $(x,y)$ al obiectului | ||
+ | - se determină coordonatele sale în spațiul $(u,v)$, $0<= u, v <= 1$, al peticului Bezier (se normalizează coordonatele) | ||
+ | - Se deformează peticul Bezier, deplasând punctele de control | ||
+ | - Pentru fiecare vârf al obiectului | ||
+ | - Se calculează noile sale coordonate $x(u,v)$, $y(u,v)$ evaluând ecuația $s(u,v)$ pentru noile puncte de control $p_{ij}$ | ||
+ | - Se afișează obiectul deformat | ||
+ | |||
+ | ==== Deformarea în 3D ==== | ||
+ | * Unitatea de volum corespunzătoare în spațiul 3D unui petic de suprafață bicubic: hyperpatch-ul tricubic Bezier | ||
+ | {{ :vdvac:lab5_fig3.png?400 |}} | ||
+ | * Obiectul de deformat e definit în spațiul 3D, iar volumul său încadrator este $(x_{min},x_{max})$, $(y_{min},y_{max})$, $(z_{min},z_{max})$ | ||
+ | * Pentru fiecare vârf al obiectului, se calculează, raportat la această încadrare, coordonatele sale $(u,v,w)$, $0<= u, v, w <= 1$, în spațiul parametric al hyperpatch-ului | ||
+ | * Inițial, cele $4 \times 4 \times 4$ puncte de control sunt aliniate de-a lungul axelor $X, Y, Z$ pe laturile paralelipipedului încadrator obiectului de deformat | ||
+ | * La fiecare deformare a hyperpatch-ului, prin deplasarea punctelor de control | ||
+ | * Se calculează noile coordonate ale vârfurilor obiectului, $x(u,v,w)$, $y(u,v,w)$, $z(u,v,w)$ folosind ecuația $q(u,v,w)$ | ||
+ | |||
+ | |||
+ | ==== Demo ==== | ||
+ | |||
+ | <html> | ||
+ | <p style="text-align:center;margin:auto;"> | ||
+ | <iframe width="430" height="250" src="https://www.youtube.com/embed/c6GOTHL0cwg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> | ||
+ | </p> | ||
+ | </html> |