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 20-05-2013
el-mono el-mono is offline
Miembro
 
Registrado: abr 2008
Ubicación: Lules
Posts: 176
Poder: 17
el-mono Va por buen camino
Smile Pintar superficie poligono respetando relieve de la imgen de fondo

Buenos dias queridos compañeros.




asi es como queda mi prueba (Horrible):



Lo que necesito hacer es sobre es pintar una porcion de la superficie de una imagen como la que ven arriba, para ello lo que intente hacer es utilizando Regiones y por ultimo poligonos. El tema es que lo quepinta se nota mucho que es una figura (poligono, circunferencia) sobre la imagen y no como me gustaria (como esen la imagen que muestro arriba ) donde se nota (al menos yo lo veo asi ) que el color de relleno de la porcion de la imagen respeta el relieve.

Nota: Estoy trabajando con firemonkey primero para aprender y otra porque lo veo mas dirigido a este tipo de trabajos.

Pregunta:

Como puedo hacer para rellenar con un color un poligono dibujado sobre la imagen y que me respeta las ondulaciones de la superficie de la cara del diente ?


Espero se entiendami pregunta y desde ya muchas gracias.

Última edición por el-mono fecha: 20-05-2013 a las 15:09:21.
Responder Con Cita
  #2  
Antiguo 22-05-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Suponiendo que no tienes acceso a la imagen en 3D, prueba con polígonos transparentes. Empieza con un 50% y ya lo vas subiendo o bajando según se vea. Ten en cuenta que no con todos los colores se verá igual con la misma transparencia.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 23-05-2013
el-mono el-mono is offline
Miembro
 
Registrado: abr 2008
Ubicación: Lules
Posts: 176
Poder: 17
el-mono Va por buen camino
Ñuño como es el tema de polígonos transparentes ? tenes algun ejemplillo de ello ?
Responder Con Cita
  #4  
Antiguo 30-05-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Hola, perdón por la tardanza pero es que me perdí.

No tengo ningún ejemplo a mano. Pensaba decirte que TShape tiene una propiedad de transparencia, pero veo que no es así (al menos, no en Lazarus). Tampoco veo transparencia ni canal alfa en las propiedades Pen y Brush, así que la cosa no es tan fácil como creía.

Si usaras una biblioteca gráfica, tal como OpenGL, Allegro o incluso SDL, ahí sí podría orientarte mejor y más fácilmente.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 30-05-2013
el-mono el-mono is offline
Miembro
 
Registrado: abr 2008
Ubicación: Lules
Posts: 176
Poder: 17
el-mono Va por buen camino
Si yo utilizara tu librería Allegro.pas vos decís que yo podría hacer algo similar ? como le puedo hacer ?
Responder Con Cita
  #6  
Antiguo 31-05-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Allegro permite definir modos de dibujo y colores e imágenes con canal alfa (transparencia) usando la unidad alblend, donde hay varias formas de definir las funciones que permiten hacerlo (al_set_trans_blender o al_set_alpha_blender, por ejemplo).

Un problema es que habría que hacerlo en un bitmap de Allegro (AL_BITMAPptr) y después pasarlo al canvas del componente donde dibujas (hay un ejemplo de cómo hacerlo junto al paquete, en "./examples/lazarus").

El otro es que la versión 4 no es compatible con Delphi. La versión 5 alpha1 sí lo es, pero las funciones de dibujo de esta se basan en OpenGL y resulta mejor usar esta biblioteca directamente sin pasar por Allegro.

Vamos, que es sencillo pero complicado a la vez, y porque si no has usado nunca Allegro ni OpenGL será bastante complicado.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #7  
Antiguo 04-06-2013
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 94
Poder: 19
DarkDudae Va por buen camino
A la mayoría de componentes de Firemonkey se les puede cambiar la propiedad de la opacidad. Creo recordar (hablo de memoria) que no es una propiedad al uso (es decir, que no puedes cambiarla simplemente con: Componente.Opacity:=0.5). Lo que sí estoy seguro es que podrías conseguir lo que buscas con el comando:

Código Delphi [-]

Componente.AnimateFloat('Opacity', 0.5, 0.75);


Ese código lo que haría sería cambiar la opacidad del componente a la mitad (0.5) en un tiempo de 0.75 segundos. Supongo que si pones un tiempo de 0 la cambiará directamente.

Probablemente esta propiedad pueda ser cambiada sin la necesidad de usar el FloatAnimation, pero lamentablemente en el equipo desde el que hablo no tengo las versiones con Firemonkey disponible.

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pintar StringGrid aams01 C++ Builder 5 07-05-2011 06:24:27
Cargar en un Timage una imgen que esta en internet gulder Varios 3 09-10-2008 19:31:10
Pintar un Grid JULIOCTORRESG Gráficos 1 03-11-2006 22:00:37
Label con relieve, como hago? MadeInBsAs OOP 18 21-01-2006 07:37:39
borrar un poligono frf_84 Gráficos 1 10-12-2004 10:03:19


La franja horaria es GMT +2. Ahora son las 09:35:19.


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