Open GL - Ayuda: isotropico y anisotropico

 
Vista:

Ayuda: isotropico y anisotropico

Publicado por tito (2 intervenciones) el 26/12/2005 18:23:46
wenas a todos y feliz navidad!!!.
Una preguntilla, estoy haciendo una interfaz de dibujo para dibujar lineas, cuadrados etc... y me gustaria saber como puedo cambiar la vista anisotropica a isotropica o al reves el codigo para la anisotropica es el siguiente.
ancho = w-BORDE;
alto = h;
glViewport(BORDE, 0, w-BORDE, h);
pero no se q poner para la isotropica.
A ver si alguien puede ayudarme gracias y os deseo un feliz año 2006 de antemano.
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

RE:Ayuda: isotropico y anisotropico

Publicado por OdioGPC (3 intervenciones) el 29/12/2005 18:28:22
Uffffff, esa GPC esta haciendo estragos.
Basicamente lo que tines que hacer es comprobar cual de las dos (ancho y alto) es la menor y quederte con esa. Seria algo asi
si ( altura < ancho)
ancho=altura;
alto=altura;
sino
ancho=ancho;
alto=ancho;

glViewport(BORDE, 0, ancho, alto);

mas o menos tiene que ser eso, yo estoy igual de empantanado que tu, todavia estoy haciendo la primera practica.
Por cierto si sabes como hacer lo del barrido rotacional sera bienvenida toda ayuda.
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

RE:Ayuda: isotropico y anisotropico

Publicado por tito (2 intervenciones) el 30/12/2005 15:32:29
Gracias tio, pero ya habia conseguido sacarlo. Sobre el barrido rotacion tengo algo te lo explico asi por encima para ver si lo entiendes y tal.
Lo que tienes que hacer es sacar x vertices para cada punto de tu figura 2D, esos vertices seran los que te hagan la figura en 3D, imaginate que tienes un punto en la coordenada (1,2) pues para ese punto habran 10 vertices entorno al eje z, no se si me explico pero imaginate ese punto en un eje de coordenadas 3D y giralo, veras como asi lo entiendes.
El codigo es este:
int k=0;
for (int i = 0; i < nPuntos; i++) {
for (int j = 0; j < nVertices + 1; j++) { vectorVertices[k].x = vectorPuntos[i].x * cos(2*pi/nVertices*j);
vectorVertices[k].y = vectorPuntos[i].y;
vectorVertices[k].z = vectorPuntos[i].x * (sin(2*pi/nVertices*j));
k++;
}
}

asi sacas las coordenadas de cada vertice de cada punto.
Luego lo que tienes que hacer es guardar en un vector de poligonos los indices de los vertices que tiene ese poligono, no las coordenadas, sino los indices(date cuenta que la estructura de poligonos son 4 enteros, no doubles como son las coordenadas de los vertices). dibuja una figura en papel y haz una rotacion y veras como te salen siempre poligonos de 4 vertices, mira esos vertices q posiciones son las que ocuparian en el vector de vertices y te saldra perfecto.
Para q se me generara la figura yo lo que he hecho es un for desde 0 hasta (npuntos*nvertices/2) y dentro hacer un glbegin donde dentro esta glvertex3f de los indices de los vertices que tiene el vector de poligonos, pero aun asi no me sale, me da un error y no se como resolverlo.
Si no entiendes algo dimelo y si yo resuelvo algo o lo resuelves tu nos lo comentamos.
Un saludo.
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

RE:Ayuda: isotropico y anisotropico

Publicado por OdioGPC (3 intervenciones) el 30/12/2005 18:22:44
Mil gracias, por la explicacion. Mas o menos creo que he entendido la explicacion, en cuanto acabe con la practica de la "interfaz de dibujo" me pongo con esta, y te comento como va la cosa.
Un saludo, y feliz año nuevo.
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

RE:Ayuda: isotropico y anisotropico

Publicado por OdioGPC (3 intervenciones) el 05/01/2006 19:07:03
Bueno chabalote, ya esta la cosa acabada. Yo lo que he hecho para generar la figura es es lo que comentabas, pero cambiando la condicion de salida del for por esta ((numVertices+1)*(numPuntos-1)), con lo que me ha quedado una cosa tal que asi;

for(int i=0; i < (numVertices+1)*(numPuntos-1); i++)
{
glBegin(GL_LINE_LOOP);
glVertex3f(vectorVertices[vectorPoligonos[i].v1].x,
vectorVertices[vectorPoligonos[i].v1].y,
vectorVertices[vectorPoligonos[i].v1].z);

glVertex3f(vectorVertices[vectorPoligonos[i].v2].x,
vectorVertices[vectorPoligonos[i].v2].y,
vectorVertices[vectorPoligonos[i].v2].z);

glVertex3f(vectorVertices[vectorPoligonos[i].v3].x,
vectorVertices[vectorPoligonos[i].v3].y,
vectorVertices[vectorPoligonos[i].v3].z);

glVertex3f(vectorVertices[vectorPoligonos[i].v4].x,
vectorVertices[vectorPoligonos[i].v4].y,
vectorVertices[vectorPoligonos[i].v4].z);
glEnd();
}

Y asi he conseguido que dibuje la figura en 3D, espero que te sierva de algo.
Un saludo.
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

RE:Ayuda: isotropico y anisotropico

Publicado por tito (1 intervención) el 07/01/2006 14:34:10
muchas gracias tio, la verdad esq solo me quedaba eso y la tengo que entregar el lunes. Bueno gpc a la saca por lo menos las practicas. Gracias y a ver si aprobamos el examen.
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