begin process at 2012 02 12 06:12:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

algorithme d'un cercle avec opengl


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

algorithme d'un cercle avec opengl

samedi 28 août 2004 à 12:45:24 | algorithme d'un cercle avec opengl

jfk20004


quelqu'un peut il me donner le code d'un algo d'un tracé de cercle
utilisant opengl. Par ex
x=r*cos(alpha)+cos(beta);
y=r*sin(alpha)+cos(beta);

j'imagine que je prends un tab[x] et un tab[y] dans lequel je passe les val de r*cos(alpha)+cos(beta).
Le prob est lorsque je passe les tabs dans glvertex je n'obtiens
pas un cercle?où est le prob??MERCI!!!
samedi 28 août 2004 à 13:25:10 | Re : algorithme d'un cercle avec opengl

coucou747

Administrateur CodeS-SourceS
c'ets du programme de seconde...
je te le donne en tibasic, je ne connais pas opengl
degree
10->r
for (a,0,360)
cos(a)*r->x
sin(a)*r->y
pt-on(x,y,1);
end

voilavoila
samedi 28 août 2004 à 21:02:04 | Re : algorithme d'un cercle avec opengl

JCDjcd

Réponse acceptée !
http://www.cppfrance.com/code.aspx?ID=19748

une source qui fait des chose comme le cercle, voire en mieux.

Le bout de code interessant :



//------------------------------------------------------------
static void CalcPointTorus(double R,double r,double t,double a,double z)
{
glVertex3d(
(R + r*cos(a))*cos(t),
(R + r*cos(a))*sin(t),
z+r*sin(a)
);
}
//------------------------------------------------------------
// creer un torus d'axes z de grand rayon <R> et de petit rayon <r>
// le commencement de fait a z=0 et la fin a z=<dz>
void MyCreateTorus(double R,double r,int nVertex,int slices,double angleBegin,double angleEnd,double dz)
{
double theta,stepTheta,oldTheta;
double stepAlpha;
double z,oldZ,stepDz;

stepTheta = (angleEnd - angleBegin)/((double)nVertex);
stepAlpha = 2.*PI/slices;
stepDz = dz/((double)nVertex);


glBegin(GL_TRIANGLE_STRIP);

oldTheta = angleBegin;
oldZ = 0.;
z = stepDz;

for(theta=angleBegin+stepTheta;theta<=angleEnd+EPSILON;theta+=stepTheta)
{
double a,b; // alpha,beta

for(a=0.,b=0.5*stepAlpha;a<=2.*PI+EPSILON;a+=stepAlpha,b+=stepAlpha)
{
CalcPointTorus(R,r,oldTheta ,b,oldZ);
CalcPointTorus(R,r,theta ,a,z);
}

oldTheta = theta;
oldZ = z;
z += stepDz;
}

glEnd();
}
samedi 28 août 2004 à 22:50:52 | Re : algorithme d'un cercle avec opengl

dletozeun

waw du TI basic!! toi aussi t'as commencé la prog la dessus?
dimanche 29 août 2004 à 11:44:28 | Re : algorithme d'un cercle avec opengl

coucou747

Administrateur CodeS-SourceS
non j'ai commencé en Qbasic, en sixième... je tibasic, j'ai apris ça en seconde, et je m'en sert encore, même si c'ets pas vraiment un language performant, (pas de fonction, les varaibles numériques sont des floats, on a pas le code ascii des chaines... les variables restent d'un programme a l'autre lent ect...)

j'ai mis ça car je ne sais pas faire de C graphique
lundi 30 août 2004 à 08:54:25 | Re : algorithme d'un cercle avec opengl

asmanur

Sinon pour faire un cercle y ' a
void Cercle(int x,int y,int rayon)
{
glPushMatrix();
glBegin(GL_POINTS);
for(double i=0;i<180;i+=0.5)
{
glRotated(0.5,0,0,1);
rayon=-rayon;
glVertex2d(-rayon);
rayon=-rayon;
glVertex2d(-rayon);
}
glEnd();
}
c pour la 2D mais c acilement adaptable 3D
jeudi 19 février 2009 à 21:34:15 | Re : algorithme d'un cercle avec opengl

mpicart

Bonjour,

Testez vos codes svp avant de les mettre en ligne  glVertex2d(-rayon); 2d donc 2 valeurs.

Quand à pour tracer un cercle il faut donc R, r, t, a et z. Il y a peut-être plus simple et plus pédagogue ?
static void CalcPointTorus(double R,double r,double t,double a,double z)
{
glVertex3d(
(R + r*cos(a))*cos(t),
(R + r*cos(a))*sin(t),
z+r*sin(a)
);
}

M.Picart
vendredi 20 février 2009 à 00:08:15 | Re : algorithme d'un cercle avec opengl

JCDjcd

ben plus simple non : le tore est définit pas deux rayons (R et r) ensuite comme c'est une surface il faut deux parametres pour y reperer un point (a et t), et enfin le z c'est une petite translation suivant l'axe Oz (c'était pour faire des helices... voir la source)

Tu ne trouves pas ca limpide ?


Pourquoi faire simple quand on peut faire compliqué ?


Cette discussion est classée dans : opengl, alpha, cercle, beta, cos


Répondre à ce message

Sujets en rapport avec ce message

OpenGL : Couleur Transparente (composante alpha) [ par smoove5198 ] Bonjour, Je fait de l'affichage 3D avec opengl et je souhaite utiliser le principe de couleur transparente. Apres m'etre un peu renseigné j'ai appri transparences en openGL [ par vangeurmasker ] J'ai un probleme dans un projet en OpenGL. J'utilise le canal alpha de mes textures pour gérér les transparences. Mais le probleme est qu'aucune textu Sa compile mais sa léve une erreur? [ par hitcher ] J'ai déjà mis un poste la dessus sauf que dans cette version j'ai retiré tous les pointeurs et les CLASS, enfin tous les trucs lié à la pile qui pouve Tourner un Point. [ par D0X ] Salut a tout le monde! Je dois tourner un Point. J'ai une ligne qui passe pour le centre d'un cercle et les points sont: CX, CY (centre du cercle), X, arbre alpha-beta [ par tarrache ] bonsoir tout le monde,pour programer un jeu de dame, demandé comme projet dans mon ecole,je serais très reconnaissant pour celui ou celle qui me fourn OpenGL - Couleur - Rendu multispectrale [ par ivme ] Bonjour,Je suis debutant en OpenGL et j'aurais besoin d'un petit coup de main pour la gestion des couleur appliquer a un objet.Je travaille sur un ell transparence en OpenGl [ par F0ra ] Bonjour, J'ai un problème en OpenGl Je voudrais rendre uniquement la couleur rose< Opengl sous VSC++express 2008 ou Builder6 [ par faucheuse ] Bonsoir a tous,J'ai un titi problème pour programmer en Opengl : ca marche pas ^^Alors avant toute chose (d'exposer en details les problemes etc..) j' matrice [ par rif59 ] bonjour; je suis debutant en C++,en fait j'ai un probleme avec ce programme:void produit_vect_mat(double b openGL [ par malbackt ] bonjour tout le monde s'il vous plait comment puis je ajouter la bibliotheque  "glut.h" aux  #include de l'environnement de C++


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales