bonjour,
je souhaite dessiner une sphère en 3D en utilisant le visual c++ 6.0. j'ai trop cherché mais j'ai rien trouvé. j'espère que quelqu'un peut me donner meme une indication.
merci en 2K.
Version imprimable
bonjour,
je souhaite dessiner une sphère en 3D en utilisant le visual c++ 6.0. j'ai trop cherché mais j'ai rien trouvé. j'espère que quelqu'un peut me donner meme une indication.
merci en 2K.
OpenGL, DirectX, Ogre (surcouche utilisant soit OpenGL, soit DirectX), ...
Si tu veux de la vraie 3D, je partirais sur DirectX ou OpenGL.
[Edit] Grilled :aie:
Mais 2 réponses identiques dans la même minute, c'est un signe qui ne trompe pas ...:P
Hihihi, mes doigts ont été plus rapides ;)
Perso, j'aime bien Ogre car il utilise les 2 librairies et on choisit laquelle on veut utiliser lors de l'exécution, et intègre pas mal d'outils.
Cependant, s'il ne s'agit que d'une sphère et ne souhaite pas aller plus loin, peut-être pas nécessaire :)
Tout dépend du système de 3D que tu utilises.
Si c'est des voxels, tu dessines ça comme pour dessiner un cercle sur des pixels.
Si c'est des polygones, il faut approximer ta sphère par un certain nombre de triangles.
bonsoir,
j'ai essayer de dessiner une sphère mais rien ne s'affiche malgré que les équations sont correctes. j'espère que quelqu'un peut m'aider.
merci.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 void CSphreDlg::Onsphere() { // TODO: Add your control notification handler code here CClientDC interface1(this); double z0,z1,z2,e0,e1,x0,y0,A,B,f0,f1,xn,yn; e0= cos(2* 3.14 * (11/1110)); f0= sin(2* 3.14 * (11/1110)); e1= cos(2* 3.14 * (11/1110)); f1= sin(2* 3.14 * (11/1110)); A = e0 * e1; B = e0 * f1; z0=0; z1=f0; x0= A; y0= B; for(int i=0; i<10000;i++) { z2= 2* e0 * z1 - z0; for(int j=0; j<10000;j++) { xn= (A * x0) - (B * y0) + (f0 * ((z1)/sqrt((x0*x0) + (y0 *y0))) *((e1* x0) - ( f1 * y0))); yn= (B *x0) + (A * y0) + ( f0 * ((z1)/sqrt((x0*x0) + (y0 *y0))) * ((f1 * x0) + (e1 * y0))); interface1.SetPixel(xn + z2 ,yn + z2 ,RGB(255,0,0)); x0 = xn; y0= yn; } z0=z1; z1=z2; }
Salut,
1/ J'ai 4 secondes de calcul pour ta boucle :? Pour un rendu, ça va être problématique.
2/ Je n'ai pas vraiment chercher à comprendre ton calcul, mais as-tu pris en compte l'origine (0,0 est le coin gauche haut de ta fenêtre) et la taille de ta fenêtre ?
hello,
Si tu compte pas aller plus loin que dessiner des formes simples et les afficher, CImg te permet de faire çà (en 2D et 3D) en deux lignes.
J'ai aussi un tutoriel de raytracing au besoin : http://matthieu-brucher.developpez.c.../3D/raytracer/