|
|||||||
|
|
|
![]() |
|
|
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 17: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: 04:24.





















