C/Visual C - Problema al imprimir variables globales

 
Vista:

Problema al imprimir variables globales

Publicado por kirby21 (5 intervenciones) el 06/09/2020 02:44:30
Buen dia gente, lo que pasa es que hice el algoritmo para dibujar una linea(DDA Simetrico), funciona pero me piden imprimir los valores de m, n y epsilon, el programa dibuja bien la linea, pero a la hora de imprimir los valores salen en 0 todos, quisiera alguna recomendacion/ ayuda.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
int xi, yi, xf, yf, n;
double eps, m;
 
 
void inicializa(void){
glClearColor(0.85, 0.35,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,600.0,0.0,600.0);
}
void DDASimetrico(void){
n=1;
bool band=false;
double dx, dy, x, y;
dx=xi-xf;
dy=yi-yf;
if(fabs(dx)>fabs(dy))
m=fabs(dx);
else
m=fabs(dy);
 
while(band==false){
if(pow(2,n-1)<=m && m<pow(2,n)){
eps=1.0/(pow(2,n));
band=true;
}
else
n++;
}
 
 
x=xi;
y=yi;
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
glVertex2i((int)x, (int)y);
glEnd();
 
for(int i=1;i<=m;i++){
x=x+eps*dx;
y=y+eps*dy;
glBegin(GL_POINTS);
glVertex2i((int)x, (int)y);
glEnd();
}
glFlush();
}
 
int main(int argc, char** argv){
glutInitWindowSize(600,600);
glutInit(&argc,argv);
glutCreateWindow("-DDA SIMETRICO-");
inicializa();
printf("Dame xi: ");
scanf("%d", &xi);
printf("Dame yi: ");
scanf("%d", &yi);
printf("Dame xf: ");
scanf("%d", &xf);
printf("Dame yf: ");
scanf("%d", &yf);
glutDisplayFunc(DDASimetrico);
printf("Valor m: %lf\n",m);//AQUI ES DONDE SE IMPRIMEN LOS VALORES
printf("Valor n: %i\n",n);
printf("Valor epsilon: %lf\n",eps);
 
 
 
 
glutMainLoop();
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 350
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Problema al imprimir variables globales

Publicado por Rodrigo (119 intervenciones) el 06/09/2020 02:57:33
Las variables que imprimes al final, son modificadas. en la funcion DDASimetrico ?
Si imprimes las variables al final de esa funcion, aparecen modificadas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al imprimir variables globales

Publicado por kirby21 (5 intervenciones) el 06/09/2020 03:00:36
Asi es, son modificadas en el metodo DDA, pero al imprimirlas en "main" aparecen todas en 0. Cabe resaltar que dentro del proceso DDA estoy seguro que se modifican por que el programa dibuja la linea correctamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 350
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Problema al imprimir variables globales

Publicado por Rodrigo (119 intervenciones) el 06/09/2020 03:13:30
Podrias modificar tu programa para que imprima los valores de esas variables dentro de esa funcion y mostrar el programa modificado y lo que genera el programa en la salida?

(Usa el boton </> para encerrar el codigo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al imprimir variables globales

Publicado por kirby21 (5 intervenciones) el 06/09/2020 03:38:54
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
int xi, yi, xf, yf, n;
double eps, m;
 
 
void inicializa(void){
	glClearColor(0.85, 0.35,1.0,0.0);
	glMatrixMode(GL_PROJECTION);
	gluOrtho2D(0.0,600.0,0.0,600.0);
}
	void DDASimetrico(void){
		n=1;
		bool band=false;
		double dx, dy, x, y;
		dx=xi-xf;
		dy=yi-yf;
		if(fabs(dx)>fabs(dy))
			m=fabs(dx);
		else
			m=fabs(dy);
 
		while(band==false){
			if(pow(2,n-1)<=m && m<pow(2,n)){
				eps=1.0/(pow(2,n));
				band=true;
			}
			else
				n++;
		}
 
		printf("Valor m: %lf\n",m);
		printf("Valor n: %i\n",n);
		printf("Valor epsilon: %lf\n",eps);
 
		x=xi;
		y=yi;
		glClear(GL_COLOR_BUFFER_BIT);
		glBegin(GL_POINTS);
		glVertex2i((int)x, (int)y);
		glEnd();
 
		for(int i=1;i<=m;i++){
			x=x+eps*dx;
			y=y+eps*dy;
			glBegin(GL_POINTS);
			glVertex2i((int)x, (int)y);
			glEnd();
		}
		glFlush();
	}
 
		int main(int argc, char** argv){
			glutInitWindowSize(600,600);
			glutInit(&argc,argv);
			glutCreateWindow("-DDA SIMETRICO-");
			inicializa();
			printf("Dame xi: ");
			scanf("%d", &xi);
			printf("Dame yi: ");
			scanf("%d", &yi);
			printf("Dame xf: ");
			scanf("%d", &xf);
			printf("Dame yf: ");
			scanf("%d", &yf);
			glutDisplayFunc(DDASimetrico);
 
 
 
			glutMainLoop();
			return 0;
		}
La salida es:
valor m: 5
valor n: 3
valor eps: 0.125
Cuando se imprime dentro del metodo DDA, si funciona la impresion de valores, solo que me pidieron que se hciiera en el main.
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 350
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Problema al imprimir variables globales

Publicado por Rodrigo (119 intervenciones) el 06/09/2020 03:45:16
Prueba escribir las instrucciones que escriben los valores despues de glutMainLoop(), no antes.
(o bien antes y despues)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al imprimir variables globales

Publicado por kirby21 (5 intervenciones) el 06/09/2020 04:14:09
He probado eso, sin embargo no funciona, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al imprimir variables globales

Publicado por kirby21 (5 intervenciones) el 06/09/2020 06:06:24
Asi es, muchas gracias por su ayuda, de momento ya lo dejare asi :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar