elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Algoritmos para cubo de pintura
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmos para cubo de pintura  (Leído 4,933 veces)
juancho77


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Algoritmos para cubo de pintura
« en: 3 Diciembre 2008, 15:05 pm »

A ver quien se las ingenia mejor. Propongo sugieran algoritmos (si en vez de un algoritmo ponen un codigo, vale, pero bien comentado, asi todos nos entendemos) para simular la funcion cubo de pintura de los paintbrush (MS PAINT, KolourPaint, etc). El cubo de pintura (para los que no sepan  :¬¬) rellena el menor area encerrada que sea del mismo color al punto donde hemos hecho click con el raton.

Dejo el mio para empezar:

Código:
//inicio
pintarPuntos (pixel p)
 crear un arreglo con todos los puntos circundantes (los que lo rodean)
 repetir desde x=0 hasta x=longitud del arreglo
  si el elemento pixel x del arreglo es del mismo color que el punto inicial
    pintar x.
    pintarPuntos(formar nuevo arreglo con los puntos circundantes de arreglo(x))
  sino
   pasar al siguiente punto
//fin

Como es recursivo, creo que comeria un monton, pero me parece que funcionaria correctamente.


En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Algoritmos para cubo de pintura
« Respuesta #1 en: 3 Diciembre 2008, 19:32 pm »

Esto suele resolverse con un BFS o DFS. Tu tienes en una matriz de enteros donde el valor de la posicion matriz[ i][j] corresponde al píxel que ocupa dicha posición. Llamas a la función indicando la posición del píxel inicio, la matriz y el nuevo color. Una vez en la función, la mecánica es guardarse el color antiguo del píxel, cambiarlo y luego comprobar los vecinos, ya sea recursivamente (DFS, tipo lo que has hecho) o iterativamente mediante una cola (BFS). Por ejemplo, este problema de la UVa se resuelve así:
http://icpcres.ecs.baylor.edu/onlinejudge/external/5/572.html

Un saludo de ghastlyX ;)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Aplicación en Ubuntu para cifrar con AES o algoritmos + fuertes
Criptografía
Gambinoh 4 7,303 Último mensaje 26 Enero 2011, 20:46 pm
por DaNuK-men
Algoritmos para grafos (C) « 1 2 »
Programación C/C++
k3r00t 11 11,274 Último mensaje 6 Julio 2011, 22:29 pm
por ghastlyX
MyPaint | Programa de pintura artística para GNU/Linux
GNU/Linux
subzero6789 1 3,327 Último mensaje 12 Octubre 2011, 00:25 am
por Foxy Rider
Que cubo de escritorio recomendais para windows???
Windows
beholdthe 3 3,366 Último mensaje 20 Octubre 2011, 05:46 am
por Sorke
Inventan una pintura inteligente que permitirá detectar fallos en edificios y...
Noticias
wolfbcn 0 1,484 Último mensaje 1 Febrero 2012, 01:32 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines