Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 09-04-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 20
cesarsoftware Va por buen camino
Cita:
Empezado por mirkogonzales Ver Mensaje
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);
  // plano X
  glColor3f(0.7, 0.5, 0.0); // naranja
  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);
  // plano Y
  glColor3f(0.8, 0.5, 0.0); // naranja
  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);
  // plano Z
  glColor3f(0.9, 0.5, 0.0); // naranja
  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.
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Opengl??? craven Gráficos 13 21-02-2007 17:25:29
opengl juanperalta Gráficos 4 11-09-2006 16:11:43
SIG opengl cecitt Gráficos 0 27-04-2005 16:47:58
OpenGL Sotrono Varios 2 26-02-2005 23:57:49
Opengl jose_2057111 Gráficos 0 14-12-2004 04:06:48


La franja horaria es GMT +2. Ahora son las 01:50:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi