SlideShare a Scribd company logo
1 of 18
Download to read offline
Sviluppo di una libreria orientata agli
oggetti per il calcolo di NURBS con
applicazioni alla grafica 2D e 3D
Antonio Sanfelice
Universit`a degli Studi di Salerno
Corso di laurea in Informatica
Relatore: Dott. Mario Annunziato
A.A. 2009 - 2010
NURBS
Cosa sono?
Modello matematico per la rappresentazione di
curve e superfici
Sviluppo iniziato negli anni ’50 per esigenze
industriali
Comunemente usate nei software di computer
grafica
28/10/2010 Made with LATEX 2/18
NURBS
Definizione
Equazioni in forma parametrica
Ogni coordinata `e definita come funzione di un
parametro esterno
Generalizzazione di B-Spline e B´ezier spline
Tutte sono combinazioni lineari di un insieme di punti
detti punti di controllo
I pesi utilizzati per le combinazioni sono le funzioni di
base (o blending functions) che sono caratteristiche
del tipo di spline.
28/10/2010 Made with LATEX 3/18
NURBS
Funzioni di Base
B´ezier
Jn,i =
n
i
ui
(1 − u)n−i
B-Spline 


Ni,1(u) =
1 se xi ≤ u < xi+1
0 altrimenti
Ni,k(u) =
(u − xi)Ni,k−1(u)
xi+k−1 − xi
+
(xi+k − u)Ni+1,k−1(u)
xi+k − xi+1
B-Spline Razionali
Ri,k(u) =
hi Ni,k(u)
n
i=0
hi Ni,k(u)
28/10/2010 Made with LATEX 4/18
NURBS
Vettore dei nodi
x ∈ Rn+k+1
: xi ≤ xi+1 ∀i ∈ [1, n + k]
Periodico o Uniforme: Gli elementi del vettore sono
equispaziati;
Aperto: Valori ripetuti all’inizio e alla fine del vettore;
Non uniforme: Nessuna condizione a parte l’ordine non
decrescente.
NURBS ⇒ Non Uniform Rational B-Spline
B-Spline razionale che utilizza un vettore dei nodi non
uniforme
28/10/2010 Made with LATEX 5/18
Libreria
Poche librerie disponibili on-line
nurbs++
openNURBS
Sviluppata in Python
portabile
semplice e veloce
Se ci credono Google e la NASA un pensiero ce lo faccio
anche io
Orientata agli oggetti
Riutilizzo di codice
Facile da estendere e personalizzare
28/10/2010 Made with LATEX 6/18
Sviluppo
Funzionalit`a
Calcolo di curve e superfici
B´ezier
B-Spline
NURBS
Concatenazione di curve
Approssimazione e interpolazione di curve e superfici
tramite B-Spline
28/10/2010 Made with LATEX 7/18
Sviluppo
Algoritmo naive per il calcolo di curve
C(u) =
n
i=0
pi bi(u)
1: for all u do
2: C(u) ← (0, 0)
3: for i = 0 → n do
4: Determina bi(u)
5: C(u) ← C(u) + pibi(u)
6: end for
7: end for
Veloce
Facile da
implementare
Numericamente
instabile
28/10/2010 Made with LATEX 8/18
Sviluppo
Algoritmo di de Casteljau
Calcolo ricorsivo di combinazioni convesse
Facile da implementare
Pi`u stabile
Complessit`a computazionale pi`u alta ∼ O(n2
)
P ← p
for i = 0 → n do
for j = 0 → n − i do
Pj = (1 − u)Pj + u Pj+1
end for
end for
return P0
28/10/2010 Made with LATEX 9/18
Sviluppo
Class Diagram: Curve
28/10/2010 Made with LATEX 10/18
Sviluppo
Class Diagram: Superfici
28/10/2010 Made with LATEX 11/18
Grafica 2D
Esempi B-Spline
28/10/2010 Made with LATEX 12/18
Grafica 2D
Approssimazione di curva
Originale su carta
Output della libreria
28/10/2010 Made with LATEX 13/18
Grafica 3D
Approssimazione di superficie
Punti da approssimare Output della libreria
28/10/2010 Made with LATEX 14/18
Grafica 3D
Approssimazione di superficie
Punti da approssimare Output della libreria
28/10/2010 Made with LATEX 15/18
Possibili Applicazioni
Scanner 3D
Simulazione meccanica dei muscoli
Ricostruzione paesaggi
Applicazioni anche al di fuori della grafica
Path planning robot mobili ed industriali
Signal Processing
Reti Neurali
28/10/2010 Made with LATEX 16/18
Test sui Tempi di esecuzione
Breve confronto con il modulo NURBS di Octave
Misurazioni dei tempi di esecuzione eseguite tramite
la funzione time della bash;
Test: Calcolo di 200 punti di una curva B-Spline
periodica di ordine 4 ottenuta da 19 punti di
controllo.
Strumento real user sys user + sys
La mia libreria 1.484s 0.352s 0.116s 0.468s
Octave 0.758s 0.664s 0.092s 0.756s
28/10/2010 Made with LATEX 17/18
Grazie
28/10/2010 Made with LATEX 18/18

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS - Presentazione

  • 1. Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con applicazioni alla grafica 2D e 3D Antonio Sanfelice Universit`a degli Studi di Salerno Corso di laurea in Informatica Relatore: Dott. Mario Annunziato A.A. 2009 - 2010
  • 2. NURBS Cosa sono? Modello matematico per la rappresentazione di curve e superfici Sviluppo iniziato negli anni ’50 per esigenze industriali Comunemente usate nei software di computer grafica 28/10/2010 Made with LATEX 2/18
  • 3. NURBS Definizione Equazioni in forma parametrica Ogni coordinata `e definita come funzione di un parametro esterno Generalizzazione di B-Spline e B´ezier spline Tutte sono combinazioni lineari di un insieme di punti detti punti di controllo I pesi utilizzati per le combinazioni sono le funzioni di base (o blending functions) che sono caratteristiche del tipo di spline. 28/10/2010 Made with LATEX 3/18
  • 4. NURBS Funzioni di Base B´ezier Jn,i = n i ui (1 − u)n−i B-Spline    Ni,1(u) = 1 se xi ≤ u < xi+1 0 altrimenti Ni,k(u) = (u − xi)Ni,k−1(u) xi+k−1 − xi + (xi+k − u)Ni+1,k−1(u) xi+k − xi+1 B-Spline Razionali Ri,k(u) = hi Ni,k(u) n i=0 hi Ni,k(u) 28/10/2010 Made with LATEX 4/18
  • 5. NURBS Vettore dei nodi x ∈ Rn+k+1 : xi ≤ xi+1 ∀i ∈ [1, n + k] Periodico o Uniforme: Gli elementi del vettore sono equispaziati; Aperto: Valori ripetuti all’inizio e alla fine del vettore; Non uniforme: Nessuna condizione a parte l’ordine non decrescente. NURBS ⇒ Non Uniform Rational B-Spline B-Spline razionale che utilizza un vettore dei nodi non uniforme 28/10/2010 Made with LATEX 5/18
  • 6. Libreria Poche librerie disponibili on-line nurbs++ openNURBS Sviluppata in Python portabile semplice e veloce Se ci credono Google e la NASA un pensiero ce lo faccio anche io Orientata agli oggetti Riutilizzo di codice Facile da estendere e personalizzare 28/10/2010 Made with LATEX 6/18
  • 7. Sviluppo Funzionalit`a Calcolo di curve e superfici B´ezier B-Spline NURBS Concatenazione di curve Approssimazione e interpolazione di curve e superfici tramite B-Spline 28/10/2010 Made with LATEX 7/18
  • 8. Sviluppo Algoritmo naive per il calcolo di curve C(u) = n i=0 pi bi(u) 1: for all u do 2: C(u) ← (0, 0) 3: for i = 0 → n do 4: Determina bi(u) 5: C(u) ← C(u) + pibi(u) 6: end for 7: end for Veloce Facile da implementare Numericamente instabile 28/10/2010 Made with LATEX 8/18
  • 9. Sviluppo Algoritmo di de Casteljau Calcolo ricorsivo di combinazioni convesse Facile da implementare Pi`u stabile Complessit`a computazionale pi`u alta ∼ O(n2 ) P ← p for i = 0 → n do for j = 0 → n − i do Pj = (1 − u)Pj + u Pj+1 end for end for return P0 28/10/2010 Made with LATEX 9/18
  • 12. Grafica 2D Esempi B-Spline 28/10/2010 Made with LATEX 12/18
  • 13. Grafica 2D Approssimazione di curva Originale su carta Output della libreria 28/10/2010 Made with LATEX 13/18
  • 14. Grafica 3D Approssimazione di superficie Punti da approssimare Output della libreria 28/10/2010 Made with LATEX 14/18
  • 15. Grafica 3D Approssimazione di superficie Punti da approssimare Output della libreria 28/10/2010 Made with LATEX 15/18
  • 16. Possibili Applicazioni Scanner 3D Simulazione meccanica dei muscoli Ricostruzione paesaggi Applicazioni anche al di fuori della grafica Path planning robot mobili ed industriali Signal Processing Reti Neurali 28/10/2010 Made with LATEX 16/18
  • 17. Test sui Tempi di esecuzione Breve confronto con il modulo NURBS di Octave Misurazioni dei tempi di esecuzione eseguite tramite la funzione time della bash; Test: Calcolo di 200 punti di una curva B-Spline periodica di ordine 4 ottenuta da 19 punti di controllo. Strumento real user sys user + sys La mia libreria 1.484s 0.352s 0.116s 0.468s Octave 0.758s 0.664s 0.092s 0.756s 28/10/2010 Made with LATEX 17/18