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 05-08-2003
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
esquerda21 Va por buen camino
Librerias

Hola. Como van las cosas.

Estoy mirando ejemplos para implementar Direct3D y me faltan varios .DCU. De donde podria bajarme estas librerias?

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 05-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola:

Prueba de mirar en la página del JEDI project. En el menú de la izquierda, pulsas en DelphiGraphics y te lleva a una página con información relacionada:

http://www.delphi-jedi.org

También, si pulsas en el siguiente enlace, te remite a una página donde se ofrecen units .pas para DirectX:

http://www.delphi-jedi.org/DelphiGra...jedi-index.htm

Espero que te sirva.
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 06-08-2003
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
esquerda21 Va por buen camino
Gracias. Otra cosa. Donde podria conseguir algun ejemplo sencillo
de rotacion de un cuadrado con directX y si puede ser comentado en castellano. No quiero basarme en las librerias de Jedi. Prefiero hacerlo directamente el DirectGrafics de Microsoft.

Gracias por tu respuesta
Responder Con Cita
  #4  
Antiguo 07-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola:

Probablemente ya conozcas esta página, la efg's, allí puedes encontrar toda clase de rutinas gráficas, ejemplos, programas de descarga ..., suelen ser de propósito general, aunque no será muy difícil adaptarlo a DirectX, hay secciones donde explica lo de las rotaciones y demás.

En castellano no me suena ninguna.

Bueno, esta función rota un punto el ángulo que se le pasa (ángulo en radianes):

Código:
funcion RotatePoint (APoint: TPoint; angle: single) : TPoint;
begin
  result.x := APoint.x * Cos(Angle) - APoint.y * Sin(Angle);
  result.y := APoint.x * Sin(Angle) + APoint.y * Cos(Angle);
end;
Aplicada a los cuatro vértices de un cuadrado, ya lo tienes rotado. Por cierto, este ejemplo llama dos veces a la función Cos y dos veces a Sin que están en la unit math.pas. Puesto que se les pasa el mismo ángulo (Angle), es más rápido utilizar la funcion SinCos que calcula seno y coseno de golpe y más rápido, le tendrías que pasar dos variables por referencia donde obtendrías esos valores. En el ejemplo te lo he puesto así, sin optimizar, pero no es muy complicado hacer el cambio.

Una vez optimizado, podrías también crearte una función donde le pasaras un array of TPoint y te lo devolviera ya rotado, sólo harías el cálculo de los senos y cosenos 1 vez, y te serviría para pasarle triángulos, cuadrados ...

¡Ah! Se me olvidaba, la función que te he puesto arriba rota un punto respecto al origen (punto (0, 0)); para rotar respecto de cualquier punto -muchas veces querrás rotar respecto al centro de la figura-, sería así:
Código:
funcion RotatePoint (APoint, FromPoint: TPoint; angle: single) : TPoint;
var
  dx, dy: Integer;
begin
  dx := APoint.x - FromPoint.x;
  dy := APoint.y - FromPoint.y;
  result.x := (dx * Cos(Angle) - dy * Sin(Angle)) + FromPoint.x;
  result.y := (dx * Sin(Angle) + dy * Cos(Angle)) + FromPoint.y;
end;
A ver si te sirve.
__________________
Guía de Estilo

Última edición por andres1569 fecha: 07-08-2003 a las 09:28:59.
Responder Con Cita
  #5  
Antiguo 07-08-2003
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
esquerda21 Va por buen camino
Gracias de nuevo por tu respuesta.

Aprovechando que aun no esta de vacaciones.....

Yo conozco las matrices de escalado, rotacion, transposicion, pero en los ejemplos que me bajo aparece... WORLD, VIEW, PROJECTION. mas o menos las relaciono pero no estoy seguro.

Gracias de Nuevo ;-)
Responder Con Cita
  #6  
Antiguo 08-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino


Uff!! No te aproveches tanto de mí, creo que no te puedo ayudar en estos temas.

No conozco DirectX ni la terminología que usa. Lo que dices de WORLD me suena a trasladar coordenadas reales a coordenadas de pantalla. Es común ver en programas gráficos, funciones como WorldToX, WorldToY y sus opuestas XToWorld, YToWorld, que traspasan las coordenadas reales (del mundo real, de ahí lo de World), normalmente expresadas en números de coma flotante (single, real, double ...) a coordenadas de pantalla, expresadas en números enteros (Integer, Longint ...), y viceversa. No sé excatamente en DirectX cómo serán, pero apunta a esa idea. El propósito es que tengas almacenadas en algún medio (listas, archivos, base de datos ...) las figuras con sus coordenadas reales, pero a la hora de dibujarlas, necesitas hacer uso de esa funciones (no sé, ya digo, cómo se llamarán en DirectX, pero lo dde WORLD prece indicar algo de eso).

Lo de VIEW, PROJECTION, ... no sé lo que puedan ser, ni que relación tengan con la rutinas que señalas al principio (rotación, trasposición ...); quizás lo de PROJECTION tenga que ver con escalar una imagen, es decir una imagen a la que aplicas un factor de escala, multiplicando todos sus vértices por dicho factor; eso hace que aparezca como proyectada. Pero sólo "quizás".

Si vas a trabajar intensamente con DirectX, te hará falta un buen manual.
__________________
Guía de Estilo

Última edición por andres1569 fecha: 08-08-2003 a las 08:44:26.
Responder Con Cita
  #7  
Antiguo 08-08-2003
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
esquerda21 Va por buen camino
Igualmente gracias. Amí si que me interesa por lo tanto seguiré adelante como pueda. Si en algun momento te interesas, supogo que ya tendre información suficiente para pasartela.
Gracias de todos modos.
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 22:16:30.


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