FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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.
|
#3
|
|||
|
|||
Ñuño como es el tema de polígonos transparentes ? tenes algun ejemplillo de ello ?
|
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
Si yo utilizara tu librería Allegro.pas vos decís que yo podría hacer algo similar ? como le puedo hacer ?
|
#6
|
||||
|
||||
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. |
#7
|
|||
|
|||
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:
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 |
|
|
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 |
|