|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 326
|
[C] Curve di Bèzier e B-Spline
Salve...sto facendo un programma in C che disegna una curva di Bèzier e una curva B-Spline! Ho i punti x i quali devono passare queste curve...mi manca solo disegnarle ma nn ho la minima idea di come posso fare!!!
Come funzionano le OpenGL ?? Sono completamente ignorante a riguardo...spero che qualcuno possa aiutarmi!!! Grazieee |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
premesso che sono completamente ignorante circa il lato matematico delle curve che hai nominato.
se non sei costretto ad usare OpenGL e se sei su Windows puoi provare alcune API della GDI: http://msdn2.microsoft.com/en-us/library/ms534244.aspx http://msdn2.microsoft.com/en-us/library/ms534265.aspx |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
E' uno degli ultimi argomenti che dovrò affrontare tra un pò, sto ultimando l'editor del motore grafico, devo implementare algoritmi per la navmesh... e il tuo code potrebbe essermi utile. Ho terminato l'AI per il personaggio e i nemici tramite spline in 3ds max con algoritmo pathfinder *A. Quindi sarei interessato alle curve e curioso alle b-spline facendo fare delle curve, ai "nemici" + realistiche tra un waypoint e l'altro. Se vuoi posso integrarlo, in un attimo in directx, in quanto non uso opengl. ti interessa? Ultima modifica di okay : 26-05-2007 alle 16:41. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Mi inserisco nel thread per fare una domanda sulle B-Spline:
avrei bisogno di usarle per interpolare dei dati, però dovrei generare delle B-Spline del 13° ordine a partire dai dati di partenza (mi sono perso per strada nei conti già al 5° ordine nel tentativo di tirare fuori la formula). Che codice usate per creare le B-Spline? |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 326
|
Quote:
Scusa ma sono davvero ignorante in tema! Come faccio ad utilizzare queste API ? |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
Codice:
function [p] = bezier(Data,n_punti) % BEZIER % % Plot a Bezier curve and gives the x-y coordinates as output % Version Beta 1.0, March 2 2006 % % [A] = BEZIER(ControlPoints,CurvePoints) % [mx2] [nx2] [m] % by: % Dipartimento di Ingegneria Meccanica % Universita' degli Studi di Trieste % Mattia Ciprian, Valentino Pediroda % check input data [PuntiControllo,dimension] = size(Data); if dimension~=2, error('(BEZIER) Wrong Data Format. It has to be [n x 2]') end % inizializzazione p = []; t=0; step = 1/(n_punti-1); grado = PuntiControllo-1; % grado_curva + 1 <---> n punti di controllo for t=0:step:1, p(end+1,:)=zeros(1,2); for j=1:PuntiControllo, p(end,1)=p(end,1)+Data(j,1)*(t^(j-1))*((1-t)^(grado+1-j))*nchoosek(grado,j-1); p(end,2)=p(end,2)+Data(j,2)*(t^(j-1))*((1-t)^(grado+1-j))*nchoosek(grado,j-1); end end
__________________
a chi non piace il vino... dio neghi anche l'acqua! ![]() DELL Latitude E4300, iPhone 6 |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Dimenticavo, a chi interessasse qui c'è la teoria:
http://www.univ.trieste.it/~dipenerg...rizzazione.pdf
__________________
a chi non piace il vino... dio neghi anche l'acqua! ![]() DELL Latitude E4300, iPhone 6 |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
A suo tempo andai a riprendere gli appunti di analisi numerica, ma tirare fuori la formula per il 13° ordine è follia, oltretutto senza usare tool di calcolo esterni |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:44.