Perdoem reativar tópico antigo, mas estou atrás disso fazem alguns dias.
Meu problema está sendo interpretar as cores de cada pixel. Preciso mudar de branco para vermelho e vice-versa. Os contornos limitadores são pretos. Agradeço qualquer ajuda ou idéia. [ ]'s Dirceu Portéla --- Em delphi-br@yahoogrupos.com.br, "Anderson Marques Ferraz" <cacom...@...> escreveu > > O algoritmo é simples sim. É só você analisar os vizinhos de cada pixel em > uma função recursiva. Se esse pixel estiver em branco, analise cada um dos > seus "vizinhos". Se estes vizinhos também estiverem em branco, faça assim > sucessivamente. Como definição primária de uma função recursiva, estabeleça > um caso-base não recursivo, de solução direta. Depois da chamada recursiva > de análise de cada um dos vizinhos, verifique se o pixel atual é branco e > pinte da nova cor. Se não for branco, simplesmente saia. Não testei esse > raciocínio, mas é semelhante a um jogo de campo minado que fiz no pascal =D > > Uma solução não-recursiva (iterativa) para esse exemplo poderia ser você > fazer o seguinte: > 1 - ao clicar em um pixel, ver algum pixel da borda do desenho localizado > acima ou abaixo, à esquerda ou à direita do ponto clicado. > 2 - a partir desse ponto da borda, localizar todos os outros pontos da borda > (supondo que os pontos da borda estão lado a lado) > 3 - analisar toda a área do desenho, cada um dos pontos; se a coordenada X > do ponto analisado estiver entre os dois pontos da borda mais próximos com > mesma coordenada Y do ponto analisado (o ponto analisado deve ter mesma > coordenada Y dos pontos da borda mais próximos a esse ponto); > 4 - analisar esse ponto novamente, mas verificando se a coordenada Y desse > ponto está entre entre dois pontos da borda mais próximos com a mesma > coordenada X. > 5 - se 3 e 4 forem verdadeiras, então o ponto analisado está dentro da > borda. Logo, deve ser pintado. > > Não testei essa solução, mas acho que deve funcionar. Qualquer coisa, manda > email aí pra ver o resultado. > Eu prefiro a solução recursiva. > []'s > > > Em 01/08/07, Benn Alle <benna...@...> escreveu: > > > > Luiz > > > > Acho que dá sim, > > > > Veja só, se a figura original for somente com linhas pretas você pode > > pegar > > a cor de pixel que ela clicou e ir ir verificando cada pixel ao redor, se > > não for preto você pinta da nova cor, e se for preto você para naquele > > sentido. > > Só que só vai funcionar se as figuras forem fechadas, se tiver uma conexão > > entre duas áreas ele vai pintar também, como ocorre no paint, porém você > > não > > vai poder permitir que ela pinte com a cor preta, o que você pode fazer é > > usar para a borda da imagem uma cor que não seja bem preto e não colocar > > esta cor na paleta de cores que você vai disponibilizar para ela. > > Acho que o algoritmo para verificar as bordas não vai ser muito fácil de > > fazer, mas não é impossível. > > Se você quizer entrar nesta impreitada eu te ajudo. > > > > Um Abraço, > > Benn > > > > Em 01/08/07, esco...@... <escobar%40megasistema.com.br> < > > esco...@... <escobar%40megasistema.com.br>> > > escreveu: > > > > > > até tentei mas pelo tempo, ou melhor falta dele, mandei usar o paint do > > > windows mesmo, as vezes corel, photoshop... > > > hoje ela tem 7 anos e se vira heheheee... > > > > > > Luiz Escobar - Analista/Desenvolvedor: > > > WEB - HTML/JavaScript/PHP/MySQL > > > WINDOWS - Delphi/ASSEMBLER/MySQL/xBase > > > SERVIDORES - IntraNetWare4.11, LINUX-RedHat9, Windows > > > > > > ----- Original Message ----- > > > From: [DirectWeb] - Marcio > > > To: delphi-br@yahoogrupos.com.br > > > Sent: Wednesday, August 01, 2007 11:22 AM > > > Subject: [delphi-br] Programa clique e pinte - infantil > > > > > > Olá ... > > > > > > Estou tentando fazer um software estilo clique e pinte para meus filhos, > > > porém não achei uma forma de fazer o preenchimento das partes da figura > > > ... uma figura inicialmente branca contornada em preto ... alguém já fez > > > algo desse tipo ? tem alguma idéia pra me dar ? > > > > > > []s > > > > > > Marcio > > >