Open GL - (DDA para imprimir una linea)

 
Vista:

(DDA para imprimir una linea)

Publicado por kirby21 (1 intervención) el 06/09/2020 02:39:47
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
75
#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