> Tous les forumsAutres langages

 Biblio Allegro.
Statut du sujet : NON RESOLU Imprimer
 makayen
  Posté le 21/01/2006 @ 19:43  
 Petit astucien

7 Messages
slt tt le monde ,j'aimerai savoir si qelq1 pourra m'aider au sujet de developpement avec la bibliothéque <ALLEGRO.h> plus précisement comment on peut tracer des courbe mathémathiques à l'aide de cette bibliothéque.exemple de programme, code source ou n'importe quoi va être utile car ca fait un temps que j'essai de réaliser ceci mais [boom] ... merci à l'avance
 Afficher le profil de makayenEnvoyer un message privé à makayen
 
 
Publicité
 breizhbugs  Posté le 22/01/2006 à 11:40  
Astucien

3001 Messages
[hello] je connais pas allegro, mais j'ai trouvé ca: http://iteme.free.fr/tutorials/Allegro.rtf
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 makayen  Posté le 22/01/2006 à 13:28  
Petit astucien

7 Messages
merci bien breizhbugs. ce documents vas m'être trés utile à ce que j vois.. jé une autre question [rougir] si vous me permettais.. j vx savoir comment tracer la courbe de cette fonction précsie f(x)=cos(x)+ln(3x)car j y arrive pa en ce moment j suis un débutant avec allegro j'aimerai bien qe quelqu'un m'éclaircie. svp aidez moi !! [rougir] [chinois]merci [chinois]
Afficher le profil de makayenEnvoyer un message privé à makayen
 Revenir en haut de la page
 Zharth  Posté le 22/01/2006 à 15:38  
Petit astucien

27 Messages
Il y à un très bon tutoriel en français pour Allegro ici : [url]http://kaiser-edouard.developpez.com/tutoriels/allegro/[/url]
Afficher le profil de ZharthEnvoyer un message privé à Zharth
 Revenir en haut de la page
 makayen  Posté le 22/01/2006 à 18:19  
Petit astucien

7 Messages
slt Zharth merci pour ton aide jé lu les tutoriels mais j trouves pa des choses utils pour tracer une courbe ....[grincheux] mais merci comme meme ...[chinois]
Afficher le profil de makayenEnvoyer un message privé à makayen
 Revenir en haut de la page
 breizhbugs  Posté le 22/01/2006 à 19:04  
Astucien

3001 Messages
Re, D'apres ce que j'ai compris, il faut que tu te renseigne sur comment acceder a la memoire d'un BITMAP et que tu dessines directement dedans.
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 makayen  Posté le 22/01/2006 à 19:50  
Petit astucien

7 Messages
[smile]oui mr breizhbugs oui j crois qe c'est ça qe jé compris moi meme en lisant quelque tutos ... jé trouvé aussi ceci mai j sé pa commment l'appliqué ds mon prog [boom] [code] //Dessine une ligne verticale entre les points (100;50) et (100;60) vline(bitmap,100,50,60,makecol(0,0,0)); //Dessine une ligne horizontale entre les points (100;50) et (150;50) hline(bitmap,100,50,150,makecol(0,0,0)); comment utilisé ces 2 fonction svp..
Afficher le profil de makayenEnvoyer un message privé à makayen
 Revenir en haut de la page
 breizhbugs  Posté le 22/01/2006 à 21:01  
Astucien

3001 Messages
Re, A mon avis tu n'auras l'utilité d'aucune des 2 fonctions que tu dis car c'est juste pour faire un trait horizontal ou vertical! Je ne connais pas Allegro, alors je peux pas t'aider sur quels fonctions utiliser. Je suis désolé! Sur http://www.cppfrance.com/code.aspx?ID=9596 regarde la fonction "dessiner" et interesse toi a la fonction "_putpixel" la aussi cela a l'air interessant: http://oregonstate.edu/~barnesc/quick_reference.html

Modifié par breizhbugs le 22/01/2006 21:02
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 makayen  Posté le 26/01/2006 à 22:39  
Petit astucien

7 Messages
slt tt le monde, j suis de retour encore[bigsmile] bon aprés un peu de travail et avec l'aide que m'a apporté breizhbugs et Zharth jé pu savoir comment les choses marche avec ALLEGRO bon jusqu'à maintenent j ne sé que comment faiore un ecran et tracer des ligne verticals et horizontals pour que ça parait comme repér pour ma courbe pour ça jé utilisé vline et hline . mé ce que j comprend pa c'est l'écran ds lequel j dessine [grincheux] les positions ou les coordonées j'arrive pa a les maitrisé et à les saisir svp aidez moi ...[pleurer]
Afficher le profil de makayenEnvoyer un message privé à makayen
 Revenir en haut de la page
 koala01  Posté le 17/02/2006 à 04:40  
Astucien

4715 Messages
Salut, En fait, une ligne courbe n'est jamais… qu'une succession de droites très petites [clindoeil], et meme plutot à une succession de point suffisement proche pour etre considérée comme une suite continue[clindoeil] Pour te permettre de comprendre, je vais me permettre de t'initier vaguement à la trigonométrie (en passant sur les détails), et pour cela, il me faut un petit dessin que voici [img]http://koala01.free.fr/images/trigo.PNG[/img] Il faut savoir que, quand on regarde un angle, on peut en fait se dire qu'il représente une certaine partie d'un cercle, dont le centre serait le point d'intersection des deux droites, et d'un Diametre unitaire (comprend: quelle que puisse etre la taille des segments de droite envisagée (10 cm, 15 metre, 255 km) la taille vaudrait toujours 1) Le cosinus d'un angle est la valeur de la coordonnée horizontale (forcément comprise entre 1 et -1) et le sinus la valeur de la coordonnée verticale (forcément comprise entre 1 et -1) de l'intersection entre la demi droite qui fait l'angle et le cercle imaginaire tracé. Le calcul d'un angle dans un cercle part toujours de l'horizontale et augmente dans le sens inverse des aiguilles d'une montre [clindoeil] Il y a donc moyen de diviser le cerle en quatre secteurs bien distincts (numérotés de I à IV) de telle manière qu'un angle compris entre 0 et 90° aie un sinus et un cosinus positifs, qu'un angle entre 90,000000001 et 180° aie un cosinus positif et un sinus négatif, un angle entre 180.000000001 et 270° aie un cosinus et un sinus négatifs et qu'un angle compris entre 270.00000001 et 360° aie un cosinus négatif et un sinus positif. Dans le but de tracer une courbe, on ne va pas réellement s'intéresser à l'angle, mais bel et bien aux coordonnées relatives du point d'intersection entre la demi droite qui fait l'angle et le cercle imaginaire. Il faut savoir que de nombreux langages utilisent le radian comme unité de mesure des angles… Si c'est le cas, la transformation de degré en radian est une constante que l'on peut définir comme étant
X(degre)=X/180*PI (radian)
PI ayant une valeur fixe (3,1415926...) il devient très facile d'utiliser une règle de trois pour effectuer le calcul [clindoeil] Ainsi, pour un angle de 30 degré, on a 30=30/180*3.14159266 ~=0.5935598 radians [clindoeil] Partant de là, on peut très facilement calculer une position (relative au centre du cercle) à laquelle se positionne le point: On commence par calculer le sinus et le cosinus de l'angle, et ma calculatrice me donne sin(30°)=0.5 cos(30°)~=0.99995 Il n'y a alors plus qu'à positionner le point par rapport au centre calculé, en utilisant les valeurs des sinus et des cosinus comme rapport de la taille réelle (et, selon les fonctions utilisables). De cette manière, le tracé d'un cercle d'un rayon de 100 pixels et ayant son centre en 150,150 (en n'utilisant pas la commande circle) pourrait très bien se faire sous la forme d'un code ressemblant à
int i; float angle; float cosinus; float sinus; for(i;i<360;i++) { //on donne la valeur de i à angle angle=i; //la conversion de l'angle en radians si nécessaire //(à vérifier dans la doc de allegro angle=angle/180*3.1415926; //calcul du sinus et du cosinus sinus=sin(angle); cosinus=cos(angle); //on applique le rapport (sur 100pixels) sinus*=100; cosinus*=100; //on aurait très bien pu faire les deux sur une seule commande avec //sinus=100*sin(angle) et //cosinus=100*cos(angle)[clindoeil] //il ne reste plus qu'à demander de tracer un point au bon endroit vline(bitmap,150+cosinus,150+cosinus,1,makecol(0,0,0)); //d'ailleurs, on aurait très bien pu directement faire le caclul de la position d'une seule traite avec //sinus=150+100*sin(angle); //et //cosinus=150+100*cos(angle); //et avec la commande //vline(bitmap,cosinus,sinus,1,makecol(0,0,0)); //on autrait d'aillerus très bien pu utiliser la commande hline plutot que vline [clindoeil] }
Si tu veux créer, par exemple, la courbe sinusoïdale (en partant d'une coordonnée x de 150, et ayant l'axe y en 150 vertical, le code n'est que très peu modifié:
int x; int i; float angle; float sinus; for(i=0;i<360;i++) { //comme avant, récupération de l'angle et convertion si nécessaire angle=i; angle=angle/180*3.1415926; //on calcule directement la coordonnée y du point sinus=150+100*sin(angle); //et la coordonnée horizontale est 150 (le point de départ)+i x=150+i; //il ne reste plus qu'à faire tracer placer un point vline(bitmap,x,sinus,1,makecol(0,0,0)); }
Maintenant, si tu souhaites créer des courbes plus complexes, il ne te reste qu'à adapter les formules [clindoeil]
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Les sujets pertinents liés
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page
Comme PC Astuces, mettez-vous au vert avec Ikoula !
Faites le choix d'un hébergeur acteur de l'environnement !