|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - darioup
Páginas: [1]
1
« en: Jueves 18 de Marzo de 2010, 07:47 »
Hola a to2, tengo la silueta de una figura pero sin relleno, el objetivo es poder rellenarla con cualqueir color sin sobrepasar los bordes tal como se muestra en el sig codigo #include <GL/glut.h> int maxY = 537; void init(void){ glClearColor(0.09, 0.36, 0.478, 0.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 585, 0.0, 537); } void bezier4p(GLfloat mat[][4][3], int tam, int w){ glLineWidth(w); for(int i=0; i<tam; i++){ glMap1f(GL_MAP1_VERTEX_3, 0.0, 1, 3, 4, &mat[i][0][0]); glEnable(GL_MAP1_VERTEX_3); //activa el evaluador glMapGrid1f(250, 0.0, 1.0); glEvalMesh1(GL_LINE, 0, 250); glDisable(GL_MAP1_VERTEX_3); } } void CurvadeBezier(void){ glClear(GL_COLOR_BUFFER_BIT); GLfloat cuerpo[8][4][3] = { { {267,maxY-78,0} , {297,maxY-146,0} , {297,maxY-146,0} , {216,maxY-248,0} }, { {216,maxY-248,0} , {185,maxY-299,0} , {217,maxY-387,0} , {297, maxY-408,0} }, { {297,maxY-408,0} , {413,maxY-438,0} , {505,maxY-347,0} , {445, maxY-246,0} }, { {445, maxY-246,0} , {370,maxY-158,0} , {370,maxY-158,0} , {400,maxY-89,0} }, { {400,maxY-89,0} , {362,maxY-118,0} , {362,maxY-118,0} , {351,maxY-152,0} }, { {351,maxY-152,0} , {336,maxY-103,0} , {336,maxY-103,0} , {360,maxY-7,0} }, { {360,maxY-7,0} , {300,maxY-40,0} , {300,maxY-40,0} , {320,maxY-156,0} }, { {320,maxY-156,0} , {307,maxY-96,0} , {307,maxY-96,0} , {265,maxY-80,0} } }; bezier4p(cuerpo, 8, 7); glFlush(); } int main(void){ glutInitWindowSize(600, 600); glutCreateWindow("Curva de Bezier"); init(); glutDisplayFunc(CurvadeBezier); glutMainLoop(); }
para rellenar tengo entendido que tengo q utilizar algo como esto void rellena(GLfloat mat[][4][3], int lineas){ for (int i=0; i<lineas; i++){ glMap2f(GL_MAP2_VERTEX_3, 0.0, 1, 3, 4, 0.0, 1, 12, 4, &mat[i][0][0]); glEnable(GL_MAP2_VERTEX_3); //activa el evaluador glMapGrid2f(250, 0.0, 1.0, 250, 0.0, 1.0); glEvalMesh2(GL_FILL, 0, 250, 0, 250); } ... //y mandara a llamar a la funcion rellenar dentro de CurvadeBezier() rellena(cuerpo, 8); }
de alguna manera lo hace pero lo hace muy extranio creo q hacen fala puntos de control para q se defina bn la superficie sobre la cual se va a colorear pro ya anduve buscando en la red y no encontre mas q lo q tengo hasta el momento, o si alguien conoce sobre superficies de bezier se los agradecere bastante algun manual o algo parecido pero q realmente contenga superficies curveadas bezier y de preferencia para 2D
2
« en: Miércoles 17 de Marzo de 2010, 03:32 »
EXCELENTE creo q esto es de lo mejor, no conocia el memcpy muchas gracias
3
« en: Miércoles 17 de Marzo de 2010, 01:46 »
nooop no quiero recorrer toda la matriz o limpiarla, quiero sobreescribir sus campos por valores escritos por el programador, para un programa de graficacion donde los campos de la matriz son X, Y, alpha; entonces los X, Y son muy cambiantes, y solo quiero reutilizar la variable matriz ... float PC3[3][3]={{250, 250, 0}, {500, 80, 0}, {585, 537, 0}}; pinta(*PC3); PC3 = {{216, 248, 0}, {297, 146, 0}, {267, 78, 0}}; //esta parte esta mal pro ojala se entienda la idea pinta(*PC3); PC3 = {{300, 250, 0}, {60, 15, 0}, {26, 81, 0}}; pinta(*PC3); ...
como son muchas lineas las q se pintan quiero ahorrar un poco de codigo ya lo tengo resuelto con una funcion q copia cada elemento en el campo adecuado de la matriz algo asi como PC3[0][0] = 300; PC3[0][1] = 345; ... me quedo muy mona mi funcion, hace q me ahorre un buen de lineas de codigo, pro queria saber si existe algo mas practico auque creo q no...
4
« en: Martes 16 de Marzo de 2010, 22:31 »
hola a to2, creo q la pregunta es muy simple pro hace mucho q lo hice y ahora no lo recuerdo bueno este es mi caso tengo una matriz de este tipo
float PC3[3][3]={{250, 250, 0}, {500, 80, 0}, {585, 537, 0}};
ahora bien quiero cambiar los valores de to2 los campos de la matriz algo asi como
PC3 = {{216, 248, 0}, {297, 146, 0}, {267, 78, 0}};
lo que no quiero es PC3[0][0] = 216; PC3[0][1] = 248; PC3[0][2] = 0; ... etc
ayuda please...
Páginas: [1]
|
|
|