[C] ecrire texte sur graph + dimensionnement
Fermé
loenix
Messages postés
2
Date d'inscription
vendredi 3 février 2006
Statut
Membre
Dernière intervention
3 février 2006
-
3 févr. 2006 à 12:24
loenix Messages postés 2 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 3 février 2006 - 3 févr. 2006 à 12:47
loenix Messages postés 2 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 3 février 2006 - 3 févr. 2006 à 12:47
A voir également:
- [C] ecrire texte sur graph + dimensionnement
- Ecrire en gras sur whatsapp - Guide
- Excel cellule couleur si condition texte - Guide
- Ecrire en miroir - Guide
- Transcription audio en texte word gratuit - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
1 réponse
loenix
Messages postés
2
Date d'inscription
vendredi 3 février 2006
Statut
Membre
Dernière intervention
3 février 2006
3 févr. 2006 à 12:47
3 févr. 2006 à 12:47
desolé il y a eu comme a petit probleme....
mais bon
bonjour a tous
voila mon probleme:
je dois realiser un programme en C qui consiste a tracer un diagramme de bode du 2 ordre
mais voila j'arrive pa a ecrire du texte sur la courbe
et pour different coeff d'amortissement que je donne la courbe dépasse de l'ecran pour revenir a gauche pour continué le tracé.
si ca peur vous aider voila le code
je le compile avec:
ccg tut.c
pour ce qui est du texte j'ai essaié un ca (trace_graph modifié):
et je compileavec
gcc -o3 -o tut tut.c -lvgagl -lvga -lm
mais lors de l'execution du graph ca me met :
cannot get I/O permissions
ca vien d ou le prob
si quelquen a une autre .....
PS : j'execute le prog sous linux en mode texte avec (./tut)
voila et merci d'avance
mais bon
bonjour a tous
voila mon probleme:
je dois realiser un programme en C qui consiste a tracer un diagramme de bode du 2 ordre
mais voila j'arrive pa a ecrire du texte sur la courbe
et pour different coeff d'amortissement que je donne la courbe dépasse de l'ecran pour revenir a gauche pour continué le tracé.
si ca peur vous aider voila le code
#include <stdio.h> #include <vga.h> #include <math.h> #define w 50000 char choix; int i,x,y,k,l; float modH[w+1],argH[w+1],courbe[w+1],m; float W1[w+1],xmin=0.01,xmax=10,ymin,ymax; void presentation(void){ system("clear"); printf("\n ///////////////////////////////////////"); printf("\n / Diagramme de BODE /"); printf("\n / Circuit du 2e Ordre /"); printf("\n / Realiser par: /"); printf("\n / /"); printf("\n / loenix /"); printf("\n / Groupe RLIA /"); printf("\n ///////////////////////////////////////\n\n\n\n\n\n"); } void trace_graduation(void){ int x0,y0; x0=vga_getxdim(); y0=vga_getydim(); vga_drawline(0,0,x0,0); vga_drawline(0,0,0,y0); for(l=1;l<5;l++){ vga_drawline(l*200,10,l*200,0); for(k=2;k<10;k++){ vga_drawline((log10(k)+(l-1))*200,5,(log10(k)+(l-1))*200,0); } } for(l=0;l<600;l+=50) vga_drawline(0,l,5,l); } void calcul_gain(void){ for(i=0;i<=w;i++){ W1[i]=(xmin+i*(xmax-xmin)/w); //equation déterminant le nb de point entre les intervalle de la courbe modH[i]=-20*(log10 (sqrt(pow((2*m*W1[i]),2)+pow(pow(W1[i],2)+1,2)))); //equation du module } } void calcul_phase(void){ for(i=0;i<=w;i++){ W1[i]=(xmin+i*(xmax-xmin)/w); //equation déterminant le nb de point entre les intervalle de la courbe argH[i]= - atan (2*m*W1[i]+pow(W1[i],2)); //equation de la phase } } void minmax(void){ if(choix=='m'){ for(i=0;i<w;i++) courbe[i]=modH[i]; } if(choix=='p'){ for(i=0;i<w;i++) courbe[i]=argH[i]; } ymin=courbe[0]; ymax=courbe[0]; for(i=1;i<=w;i++){ if(courbe[i]<ymin) ymin=courbe[i]; if(courbe[i]>ymax) ymax=courbe[i]; } } void trace_graph (void){ for(i=0;i<w;i++){ x=318*log10((W1[i]-xmin)/(xmax-xmin)); y=479-479*(courbe[i]-ymin)/(ymax-ymin); vga_drawline(x,y,318*log10((W1[i+1]-xmin)/(xmax-xmin)),479-479*(courbe[i+1]-ymin)/(ymax-ymin)); } } int main(void){ while(1){ presentation(); printf("---------------------Saisir la valeur de l'amortissement M---------------------\n"); scanf("%f",&m); calcul_gain(); vga_init(); vga_setmode(11); vga_setcolor(3); trace_graduation(); choix='m'; minmax(); trace_graph(); choix=vga_getch(); if (choix =='p'){ calcul_phase(); vga_init(); vga_setmode(11); vga_setcolor(4); trace_graduation(); minmax(); trace_graph(); } vga_getch(); vga_setmode(TEXT); }}
je le compile avec:
ccg tut.c
pour ce qui est du texte j'ai essaié un ca (trace_graph modifié):
............... #include<vgagl.h> ........................ void trace_graph (void){ if(choix!='p'){ gl_setcontextvga(11); gl_setfont(8, 8, gl_font8x8); //largeur, hauteur, pointeur sur la police (c'est la seule en standard) gl_setwritemode(FONT_COMPRESSED); gl_setfontcolors(4,5); gl_printf(50,500,"Tapez P pour la phase"); } for(i=0;i<w;i++){ x=318*log10((W1[i]-xmin)/(xmax-xmin)); y=479-479*(courbe[i]-ymin)/(ymax-ymin); vga_drawline(x,y,318*log10((W1[i+1]-xmin)/(xmax-xmin)),479-479*(courbe[i+1]-ymin)/(ymax-ymin)); } }
et je compileavec
gcc -o3 -o tut tut.c -lvgagl -lvga -lm
mais lors de l'execution du graph ca me met :
cannot get I/O permissions
ca vien d ou le prob
si quelquen a une autre .....
PS : j'execute le prog sous linux en mode texte avec (./tut)
voila et merci d'avance