Autor
|
Tema: algoritmo de bresenham (Leído 4,742 veces)
|
m@o_614
Desconectado
Mensajes: 389
|
Saludos Tengo el siguiente codigo en C, que me tiene que dibujar algunas lineas mediante el algoritmo de bresenham. Para esto estoy utilizando GLUT, la cual ya le instale correctamente. El problema es que dentro del main donde tengo la llamada a funcion de init() y glutDisplayFunc(estrella); me aparece init y estrella not declared in this scope, por qué será esto?? #include <windows.h> #include <GL/glut.h> int main(int argc, char** argv) { glutInit(&argc, argv);//inicialización de GLUT glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//único búfer de refresco en la ventana de visualización y el modo de color RGB glutInitWindowPosition(50, 100); // posición inicial, esq sup izq glutInitWindowSize(400, 300); //alto y ancho de la ventana en pixeles glutCreateWindow("Primer Practica");// creación de ventana de visualización y título de la misma init(); glutDisplayFunc(estrella); // muestra la línea en la ventana de visualización glutMainLoop(); // bucle infinitoque comprueba entrada de disp return EXIT_SUCCESS; } void bresenham(int x0,int y0,int x1,int y1) { int dx,dy,p,x,y,s1,s2,e,i,intercambio; x = x1; y = y1; s1 = signo(x1-x0); s2 = signo(y1-y0); if(y > x) { p = dx; dx = dy; dy = p; } else intercambio = 1; e=2*dy-dx; for(i = 0;i <= dx;i++) { if(e >= 0) { if(intercambio == 1) x = x+s1; else y = y+s2; } e = e-(2*dx); } if(intercambio == 1) y = y+s2; else x = x+s1; e = e+2*dy; } int signo(int num) { int resultado; if(num < 0) resultado = -1; else if(num > 0) resultado = 1; else if(num == 0) resultado = 0; return resultado; } void init(void) { glClearColor(1.0, 1.0, 1.0, 0.0); // colorde la ventana, blanco glMatrixMode(GL_PROJECTION);// proyección de la imagen en la ventana devisualización gluOrtho2D(0.0, 400.0, 0.0, 300.0);// proyección en 2D } void estrella(void) { bresenham(0,0,0,130);/* bresenham(); bresenham(); bresenham();*/ }
de antemano gracias
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Porque estrella e init están declaradas y definidas después del main por eso desde ésta última no sabe qué es estrella ni init pues todavía no están declaradas. Puedes arreglarlo añadiendo la declaración junto a la inclusión de los archivos de cabecera, tal que así: #include <windows.h> #include <GL/glut.h> void init(void); void estrella(void); int main(int argc, char** argv) { glutInit(&argc, argv);//inicialización de GLUT glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//único búfer de refresco en la ventana de visualización y el modo de color RGB glutInitWindowPosition(50, 100); // posición inicial, esq sup izq glutInitWindowSize(400, 300); //alto y ancho de la ventana en pixeles glutCreateWindow("Primer Practica");// creación de ventana de visualización y título de la misma init(); glutDisplayFunc(estrella); // muestra la línea en la ventana de visualización glutMainLoop(); // bucle infinitoque comprueba entrada de disp return EXIT_SUCCESS; } void bresenham(int x0,int y0,int x1,int y1) { int dx,dy,p,x,y,s1,s2,e,i,intercambio; x = x1; y = y1; s1 = signo(x1-x0); s2 = signo(y1-y0); if(y > x) { p = dx; dx = dy; dy = p; } else intercambio = 1; e=2*dy-dx; for(i = 0;i <= dx;i++) { if(e >= 0) { if(intercambio == 1) x = x+s1; else y = y+s2; } e = e-(2*dx); } if(intercambio == 1) y = y+s2; else x = x+s1; e = e+2*dy; } int signo(int num) { int resultado; if(num < 0) resultado = -1; else if(num > 0) resultado = 1; else if(num == 0) resultado = 0; return resultado; } void init(void) { glClearColor(1.0, 1.0, 1.0, 0.0); // colorde la ventana, blanco glMatrixMode(GL_PROJECTION);// proyección de la imagen en la ventana devisualización gluOrtho2D(0.0, 400.0, 0.0, 300.0);// proyección en 2D } void estrella(void) { bresenham(0,0,0,130);/* bresenham(); bresenham(); bresenham();*/ }
Saludos, avesudra.
|
|
« Última modificación: 27 Septiembre 2014, 02:39 am por avesudra »
|
En línea
|
Regístrate en 
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
dime el algoritmo que más te gusta... ejm:algoritmo del avestruz
Programación General
|
jhonatanAsm
|
0
|
5,001
|
13 Mayo 2011, 01:30 am
por jhonatanAsm
|
|
|
Algoritmo RTF
Criptografía
|
Hazama
|
3
|
4,078
|
19 Septiembre 2012, 06:43 am
por APOKLIPTICO
|
|
|
Algoritmo Flamel 49152 y Algoritmo Flamel 98304 - los 2 Trabajan en Paralelo
Criptografía
|
ELIAS EL INMORTAL
|
2
|
4,552
|
29 Diciembre 2012, 02:06 am
por ELIAS EL INMORTAL
|
|
|
Algoritmo Flamel 196608 y Algoritmo Flamel 393216 - los 2 Trabajan en Paralelo
Criptografía
|
ELIAS EL INMORTAL
|
5
|
6,324
|
6 Febrero 2013, 02:43 am
por simorg
|
|
|
algoritmo
Dudas Generales
|
m@o_614
|
4
|
3,766
|
22 Marzo 2013, 14:41 pm
por seneka77
|
|