A voir également:
- [C] ecrire texte sur graph + dimensionnement
- Ecrire en gras sur whatsapp - Guide
- Comment écrire # sur pc - Guide
- Écrire en majuscule - Guide
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
1 réponse
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