This shows you the differences between two versions of the page.
vdvac:lab5 [2025/10/06 15:13] 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 10: | Line 10: | ||
* Containerul se deformează => obiectul se deformează | * Containerul se deformează => obiectul se deformează | ||
- | === Deformarea în 2D === | + | ==== Deformarea în 2D ==== |
* Ecuația peticului bicubic Bezier: | * Ecuația peticului bicubic Bezier: | ||
- | {{ :vdvac:lab5_fig2.png?500 |}} | + | {{ :vdvac:lab5_fig2.png?400 |}} |
- | === Algoritmul de deformare === | + | ==== Algoritmul de deformare ==== |
- Se calculează dreptunghiul de încadrare al obiectului deformat, $x_{min}, x_{max}, y_{min}, y_{max}$ | - Se calculează dreptunghiul de încadrare al obiectului deformat, $x_{min}, x_{max}, y_{min}, y_{max}$ | ||
- Pentru fiecare vârf $(x,y)$ al obiectului | - Pentru fiecare vârf $(x,y)$ al obiectului | ||
Line 21: | Line 21: | ||
- Se deformează peticul Bezier, deplasând punctele de control | - Se deformează peticul Bezier, deplasând punctele de control | ||
- Pentru fiecare vârf al obiectului | - 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 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 | + | - Se afișează obiectul deformat |
- | === Deformarea în 3D === | + | ==== Deformarea în 3D ==== |
* Unitatea de volum corespunzătoare în spațiul 3D unui petic de suprafață bicubic: hyperpatch-ul tricubic Bezier | * 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})$ | * 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 | * 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 \mul 4 \mul 4$ puncte de control sunt aliniate de-a lungul axelor $X, Y, Z$ pe laturile paralelipipedului încadrator obiectului de deformat | + | * 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 | * 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)$ | + | * 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> |