Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2003
craven craven is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 22
craven Va por buen camino
Opengl???

Hola a todos. En esta ocasión os remito este mensaje para que me aconsejeis. En aplicación que estoy desarrollando he de dibujar un sistema de coordenadas en 2D que permita realizar gráficas y otras funciones como zoom y desplazamiento. Esta última solo estará activa cuando el zoom se encuentre al 100% y las gráficas dibujadas sobresalgan de los límites de la ventana. Pues bien, estoy estudiando la posibilidad de realizar esta aplicación con OpenGL, aunque no estoy muy decidido debido a que la complejidad del programa no es tan alta como para optar por esta opción. Por otro lado, para realizar el zoom y los desplazamientos, OpenGL es ideal, ya que éstos se podrán realizar sin parpadeos y de forma suave al poder implementarlos mediante un movimiento de cámara. En fin, que no me decido. A ver si podeis darme vuestro consejo: ¿qué pensais sería mejor para esta aplicación, OpenGL o el simple TCanvas?

Antes de despedirme me gustaria realizaros otra pregunta: ¿sabeis donde puedo encontrar un buen manual de openGL para Delphi, en el que vengan detalladas las funciones y tal...? Gracias de antemano a todos. Un saludo.
__________________
craven
Responder Con Cita
  #2  
Antiguo 12-07-2003
Majo Majo is offline
Miembro
 
Registrado: jun 2003
Posts: 43
Poder: 0
Majo Va por buen camino
Hola Craven

Me descargue un articulo en pdf acerca de OpenGL, en el hay ejemplos con programas echos en delphi, talvez te pueda servir, y sino, por lo menos podrás leerlo es bien interesante.

La pagina es:

www.grupoalbor.com/Articulos/OpenGL/OpenGL.pdf

Suerte....
Responder Con Cita
  #3  
Antiguo 13-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código:
function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorDepth: Integer; StencilBits: Byte): HGLRC;

// Set the OpenGL properties required to draw to the given canvas and
// create a rendering context for it.

var PFDescriptor : TPixelFormatDescriptor;
    PixelFormat  : Integer;

begin
  FillChar(PFDescriptor,SizeOf(PFDescriptor),0);
  with PFDescriptor do
  begin
    nSize:=sizeof(PFDescriptor);
    nVersion:=1;
    dwFlags:=PFD_SUPPORT_OPENGL;
    if GetObjectType(DC) in [OBJ_MEMDC,OBJ_METADC,OBJ_ENHMETADC]
      then dwFlags:=dwFlags or PFD_DRAW_TO_BITMAP
      else dwFlags:=dwFlags or PFD_DRAW_TO_WINDOW;
    if opDoubleBuffered in Options then dwFlags:=dwFlags or PFD_DOUBLEBUFFER;
    if opGDI in Options then dwFlags:=dwFlags or PFD_SUPPORT_GDI;
    if opStereo in Options then dwFlags:=dwFlags or PFD_STEREO;
    iPixelType:=PFD_TYPE_RGBA;
    cColorBits:=ColorDepth;
    cDepthBits:=32;
    cStencilBits:=StencilBits;
    iLayerType:=Byte(PFD_MAIN_PLANE);
  end;

  InitOpenGL; // just in case it didn't happen already
  PixelFormat:=ChoosePixelFormat(DC,@PFDescriptor);
  SetPixelFormat(DC,PixelFormat,@PFDescriptor);
  // check the properties just set
  DescribePixelFormat(DC,PixelFormat,SizeOf(PFDescriptor),@PFDescriptor);
  with PFDescriptor do
    if (dwFlags and PFD_NEED_PALETTE) <> 0 then SetupPalette(DC,PFDescriptor);

  Result:=wglCreateContext(DC);

  // read implementation properties
  if FirstContext and (Result > 0) then
  begin
    wglMakeCurrent(DC,Result);
    ReadImplementationProperties;
    FirstContext:=False;
    wglMakeCurrent(0,0);
  end;
end;
Si quieres bajarte la Unit completa la tienes en la DelphiSuperpage.

Un Saludo.

Última edición por marcoszorrilla fecha: 13-07-2003 a las 19:26:23.
Responder Con Cita
  #4  
Antiguo 20-02-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por Majo
Hola Craven

Me descargue un articulo en pdf acerca de OpenGL, en el hay ejemplos con programas echos en delphi, talvez te pueda servir, y sino, por lo menos podrás leerlo es bien interesante.

La pagina es:

www.grupoalbor.com/Articulos/OpenGL/OpenGL.pdf

Suerte....
El articulo en pdf acerca de OpenGL que te descargaste ya no se encuentra en el link que has dado, ¿sabes donde lo podemos encontrar?. Gracias y un saludo.
Responder Con Cita
  #5  
Antiguo 20-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si accedes al hilo referenciado te muestra un mensaje indicándote que la falta del archivo quizá se deba a la restructuración del sitio y te recomienda que lo busques desde su página principal. Así lo acabo de hacer, y aunque no veo que tengan una opción de búsqueda, entré a la sección de Delphi, y luego a Artículos, y ahí en la lista se ve el artículo citado.

// Saludos
Responder Con Cita
  #6  
Antiguo 20-02-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por roman
Si accedes al hilo referenciado te muestra un mensaje indicándote que la falta del archivo quizá se deba a la restructuración del sitio y te recomienda que lo busques desde su página principal. Así lo acabo de hacer, y aunque no veo que tengan una opción de búsqueda, entré a la sección de Delphi, y luego a Artículos, y ahí en la lista se ve el artículo citado.

// Saludos
Ya lo vi, para los que lo quieran éste es el tutorial y éstos son ejemplos que acompañan al artículo anterior, muchas gracias roman.

Última edición por kakarotv5 fecha: 20-02-2007 a las 15:08:59.
Responder Con Cita
  #7  
Antiguo 20-02-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por marcoszorrilla
Si quieres bajarte la Unit completa la tienes en la DelphiSuperpage.

Un Saludo.
Hola, he buscado en Delphi Superpage y no he encontrado la tan ansiada unit OpenGL.pas, también he buscado por otros sitios y me he encontrado con otras units pero que no se ajustan al programa que tengo (es un programa de un tutorial de Carlos García Trujillo que quiero hacer funcionar para aprender), voy a seguir con mi búsqueda de todas formas te agradecería mucho que me dijeras donde puedo encontrarla. Muchas gracias y un saludo.

EDITO: Ya he conseguido la unit OpenGL.pas que necesitaba, la he conseguido aquí, bajaros el archivo comprimido y luego la unit OpenGL.pas se encuentra en el archivo comprimido OpenGL1.zip (también se encuentra en algunos otros). De todos modos me ha dado un par de errores que he subsanado, os los pongo aquí a ver que os parecen:

La unidad OpenGL.pas tiene definidas dos constantes así:
Código:
const FirstContext    : Boolean = True;
      LastPixelFormat : Integer = 0;
El caso es que luego en el código de la unidad se hacen asignaciones a esas constantes por ejemplo:
Código:
...
FirstContext:=False;
...
FirstContext:=True;
...
LastPixelFormat:=PixelFormat;
...
LastPixelFormat:=0;
...
Y claro al intentar compilar me da el error de "Left side cannot be assigned to", esto está claro pues FirstContext y LastPixelFormat son constantes y no se puede hacer eso con ellas en tiempo de compilación, así que he comentado el código donde hay asignaciones, he compilado y los programas me funcionan. ¿A alguno más le ha pasado esto?. Gracias y un saludo.

Última edición por kakarotv5 fecha: 20-02-2007 a las 17:38:29.
Responder Con Cita
  #8  
Antiguo 20-02-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aquí esta.

Lo siento no puedo cargarla porque el fichero excede el tamaño permitido.


Bueno aquí tienes un enlace que funciona para descargarla.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 20-02-2007 a las 15:40:42.
Responder Con Cita
  #9  
Antiguo 20-02-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por kakarotv5
Y claro al intentar compilar me da el error de "Left side cannot be assigned to"
Prueba con la directiva {$J+}
Responder Con Cita
  #10  
Antiguo 20-02-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por seoane
Prueba con la directiva {$J+}
Perdona mi ignorancia pero ¿cómo activo esa directiva?. Muchas gracias.

EDITO: Me he informado un poco a cerca de las directivas de compilador.

Primero: ¿Qué es el IDE?
IDE significa Integrated Developement Environment, es decir, Entorno Integrado de Desarrollo. Es la forma en que se nos ofrece el lenguaje Object Pascal (lenguaje que usa Delphi por ejemplo). Delphi ofrece un determinado IDE, Lazarus ofrece otro IDE similar a Delphi pero ambos usan Object Pascal como lenguaje de programación.

Segundo: ¿Qué es una directiva de compilación?
También se las llama normativas de compilación, normativas de compilador o directivas de compilador.
Una directiva de compilación es un comando para el compilador, no para el IDE. Este comando es usado por el compilador para saber de que modo hacer las cosas.

Tercero: Ejemplos de directivas de compilación.
Por ejemplo cuando el compilador se encuentra con la directiva de compilador {$R *.RES}, el compilador hace que el archivo de recursos (el de extensión *.res) tenga el mismo nombre que el archivo del proyecto, de modo que si cambiamos de nombre al proyecto no tengamos que cambiar a mano también el archivo de recursos sino que es el propio compilador el encargado de hacer esta tarea.
Por ejemplo si hacemos una aplicación de consola habrá que usar una determinada directiva de compilación para que el compilador "sepa" que estamos haciendo un programa de consola y no un programa para windows, habrá que usar la directiva de compilación {$APPTYPE CONSOLE} al principio del programa.
Muy importante a la vez que curioso es este caso, ¿podemos variar en tiempo de compilación el valor de una cosntante? la respuesta sería no, bueno esto es lo que hemos estudiado por lo menos, el caso es que si la constante es una constante tipada, si que se puede hacer si usamos la directiva {$J+}.

Cuarto: ¿Dónde se usa una directiva de compilación?
Una directiva de compilación se usa en aquella unidad o programa que lo requiera. Es bueno ser ordenados y ponerla después del uses o antes de ninguna declaración de tipos, constantes o variables.

Última edición por kakarotv5 fecha: 20-02-2007 a las 23:51:52.
Responder Con Cita
  #11  
Antiguo 20-02-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Simplemente escribe {$J+} al principio de la unit
Responder Con Cita
  #12  
Antiguo 21-02-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por seoane
Simplemente escribe {$J+} al principio de la unit
Muchas gracias.
Responder Con Cita
  #13  
Antiguo 21-02-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 21
MAXIUM Va camino a la fama
Usa GDI+ con imagenes vectoriales de formato *.emf o *.wmf (no recomendable). Para crearlos usa el Adobe Ilustaritor o el Corel Draw.
Responder Con Cita
  #14  
Antiguo 21-02-2007
kakarotv5 kakarotv5 is offline
Miembro
 
Registrado: feb 2007
Posts: 162
Poder: 18
kakarotv5 Va por buen camino
Cita:
Empezado por MAXIUM
Usa GDI+ con imagenes vectoriales de formato *.emf o *.wmf (no recomendable). Para crearlos usa el Adobe Ilustaritor o el Corel Draw.
Me estoy iniciando en esto de los gráficos, lo que me acabas de decir me suena a chino. He tomado la iniciativa de seguir el tutorial de Carlos García Trujillo para empezar a hacer algo con gráficos, va a ser un camino duro (más teniendo en cuenta que aun me queda un año para acabar la ingniería técnica). Un saludo.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 20:33:59.


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