Cita:
Empezado por mirkogonzales
Muchas gracias por sus respuestas... No es exactamente lo buscado pero me ha sido de mucha utilidad... Me interesaria reiterar la pregunta a nivel conceptual... Imaginen que soy un objeto que se encuentra en el centro de la pantalla y a su alrededor un plano pseudoinfinito que llega hasta el horizonte... como hago para saber en los extremos de la pantalla a que punto de este plano pertenecen? De esta forma podria hacer un bucle que dibuje hasta ahi.... gracias.
|
Pero si te lo dado escrito
En OpenGL necesitas un cubo que es el area tridimensional de dibujo. Pero tu pantalla es 2D, ose un formulario.
Las funciones Glinicia y Glacaba, son para crear y quitar el contexto OpenGL.
La funcion AjustaVentana crea ese cubo de trabajo en un formulario de las dimensiones que tu quieras.
Y para dibujar el plano que quieres tendrias que usar las siguientes funciones (donde x,y,z es la posicion del plano dentro del cubo tridimensional)
Código Delphi
[-]
procedure TfrmOpenGl.DibujaPlanoX(x: Double);
begin
glNewList(8, GL_COMPILE_AND_EXECUTE);
glColor3f(0.7, 0.5, 0.0); glPolygonMode(GL_FRONT_AND_BACK, shapeX);
glBegin(GL_QUADS);
glVertex3f(x, -extY, -extZ);
glVertex3f(x, -extY, extZ);
glVertex3f(x, extY, extZ);
glVertex3f(x, extY, -extZ);
glEnd();
glEndList();
glCallList(8);
end;
procedure TfrmOpenGl.DibujaPlanoY(y: Double);
begin
glNewList(9, GL_COMPILE_AND_EXECUTE);
glColor3f(0.8, 0.5, 0.0); glPolygonMode(GL_FRONT_AND_BACK, shapeY);
glBegin(GL_QUADS);
glVertex3f(-extX, y, -extZ);
glVertex3f(-extX, y, extZ);
glVertex3f(extX, y, extZ);
glVertex3f(extX, y, -extZ);
glEnd();
glEndList();
glCallList(9);
end;
procedure TfrmOpenGl.DibujaPlanoZ(z: Double);
begin
glNewList(10, GL_COMPILE_AND_EXECUTE);
glColor3f(0.9, 0.5, 0.0); glPolygonMode(GL_FRONT_AND_BACK, shapeZ);
glBegin(GL_QUADS);
glVertex3f(-extX, extY, z);
glVertex3f(extX, extY, z);
glVertex3f(extX, -extY, z);
glVertex3f(-extX, -extY, z);
glEnd();
glEndList();
glCallList(10);
end;
Mas claro no lo puedo dejar, pero ten en cuenta que como te han dicho antes, tienes que trabajar y aprender sobre la marcha. Con el codigo que he puesto tienes la base para trabajar en opengl con delphi y lo hago porque se lo mucho que me costo a mi comenzar, la proxima consulta que sea con algo de codigo porfa
Saludos.