import lib (Tutoriais);

 << 1 2 3 4 >>

Path effects, ao vivo e a cores

25.09.08

Natal, como todas as cidades litorâneas nordestinas, atrai visitantes de vários países devido à beleza das praias, cujas ondas são apreciadas pelos surfistas. Em qualquer uma dessas cidades haverá alguém com espírito empreendedor o suficiente para abrir uma loja de artigos esportivos destinados a surfistas. E esse alguém, obviamente, não sabe desenhar, então vai contratar um ilustrador para criar o logotipo da loja.

A Kalango Surf Wear precisa de uma logo que represente bem a região. Bob, o ilustrador contratado, tem a idéia de desenhar um calango, animal típico nordestino. Vamos acompanhar os passos necessários para a criação do nosso calanguinho, utilizando o novo recurso do Inkscape, o LPE (Live Path Effects), adicionado na versão atual, 0.46.


Ah, mas pra que utilizar efeitos para criar essa imagem? É tão simples…

Mas pode ser ainda mais simples. É bem mais fácil desenhar o calango estirado, não é? Confiram na figura abaixo:

Agora que temos nosso objeto (path), podemos aplicar o efeito de deformação instantânea. Selecione o objeto e abra a janela Path Effects, no Menu principal -> Path -> Path Effects ou Shift + Ctrl + 7:

Com a janela aberta, selecione o item Bend Path e clique em Apply. (Nota: eu uso o Inkscape em inglês. Na versão em português, são os itens Caminho -> Efeitos de CaminhoQuebrar caminho). Em seguida, clique no ícone com a setinha (Edit-on-canvas).

Ao clicar nesse botão, o Inkscape selecionará a ferramenta de edição de nós e permitirá que a forma seja alterada. Uma reta verde aparece em cima do objeto. É essa reta que será manipulada livremente.

É possível adicionar mais nós, permitindo manipular o objeto de várias maneiras. Veja abaixo:

É possível ainda alterar a forma original do calango, selecionando a ferramenta de edição de nós, ou apertando F2. Ao alterar a forma original (contorno vermelho), a forma modificada sofre as alterações:


Então eu posso…

Não, não é possível alterar partes específicas do objeto, como se fosse um esqueleto. O Inkscape ainda não faz isso. Você pode tentar a Tweak Tool, que funciona como um tipo de “modelador”.

Terminada a aplicação do efeito, basta colorir e fazer os ajustes finais.

Trabalho concluído, chefe satisfeito, Bob com grana extra. E ainda dá tempo de pegar umas ondas…

O efeito halftone

27.07.08

Efeito o quê?
Você já olhou de perto, bem de perto, alguns tipos de impressos como revistas, cartazes ou jornais, e percebeu que as imagens são formadas por milhares de minúsculos pontinhos? É um método de impressão chamada halftone, ou meio-tom, e serve para simular uma imagem de tom contínuo através do uso de minúsculos pontos de diferentes tamanhos, igualmente espaçados, causando uma impressão de cor sólida. Vários softwares são capazes de reproduzir esse efeito, e o Inkscape não fica atrás. Vamos ver como reproduzir o efeito halftone no bom e velho Ink. =)

OK, por onde começamos?
Primeiro precisamos criar um objeto que será o padrão de repetição. Nas impressões, o método se resume a pequenos pontinhos, mas no Inkscape, podemos usar qualquer forma: retângulo, triângulo, estrela, etc. Crie uma pequena circunferência, com 4 pixels de largura e altura. Remova o contorno e sete o preenchimento como “Indefinido”, clicando no sinal de interrogação do painel de Preenchimento e Traço. Logo abaixo explicarei o motivo disso.

Fácil! O que vem agora?
Agora precisamos escolher uma imagem para aplicar o efeito!

Escolhida a imagem, alinhe-a com o ponto, como na figura acima: selecione os dois objetos, abra o menu de Alinhar e Distribuir e clique nas opções de alinhar acima e à esquerda, marcados em vermelho na figura. Olha o pontinho lá em cima!

Huum, estou entendendo. Já que o ponto é o padrão de repetição, eu tenho que fazer ele ser replicado por cima da imagem e depois tem algum filtro super poderoso que aplica o efeito?
Exatamente! Vamos usar a técnica secreta da clonagem ladrilhada para replicar o pontinho por cima de toda a imagem. Ao clonar um objeto, você cria uma cópia dependente do objeto clonado. Se, por exemplo, o preenchimento do objeto original for alterado, seus clones sofrerão a mesma alteração.

Para aplicar a técnica secreta da clonagem ladrilhada, basta selecionar o objeto alvo, no caso o ponto, e acessar o menu Editar > Clonar > Criar clones ladrilhados. A janela abaixo será aberta, com várias opções disponíveis. Precisaremos apenas das opções marcadas em vermelho. Queremos que os clones façam deslocamentos simples, adjacentes, e que sejam replicados na área da imagem, que no meu caso, o rosto da Beta Bitsy, é de 178 por 185 pixels.

Oba! É agora que a coisa pega fogo!
Uhuuu! Clique na aba “Traçar“! É lá que está guardado o segredo do universo!

Marque a opção “Traçar o desenho embaixo dos ladrilhos” para ativar as opções da aba. Repare no que diz o tooltip: “Para cada clone, pegar um valor do desenho no local daquele clone e aplicar a ele”. Legal! Não esqueça de selecionar apenas o ponto! É ele que será replicado!

WOW! São tantas opções! E-estou nervoso! Não…não sei se consigo!
Calma! Precisaremos de apenas algumas opções! Veja na figura abaixo, marcadas em vermelho: apenas três! AHÁ! A vida pode ser simples, caro amigo! Basta saber como!

Me explica essas opções?
Na caixinha 1 temos as opções de valores que os clones capturarão: cor ou opacidade. Marque “opacidade“, pois queremos que os clones sejam replicados apenas onde há presença de objetos opacos.

Ignore a caixinha 2.

Na caixinha 3, temos os valores que serão aplicados aos clones. Queremos que as cores da imagem sejam aplicadas a cada clone, dependendo de sua posição, então marque a opção “Cor“. Lembra quando setamos o preenchimento do ponto como Indefinido lá em cima? Se não fizermos isso, os clones não poderão capturar as cores da imagem. Marque também a opção “Dimensões“. É isso que vai fazer com que haja uma “suavização” nas bordas da imagem, pois quanto mais próximos da área transparente, menores os clones serão.

Agora eu aperto em Criar, e… WOW! Magnífico!

Os clones serão criados acima da imagem, então é preciso mover a imagem original do seu lugar para ver o resultado do efeito. Se desejar testar as outras opções, basta clicar em “Remover“, ou apertar Ctrl + Z, para remover os clones. Note que quanto menor o ponto, mais definida ficará a imagem resultante, e mais lento será o processo.

Eu tenho algumas considerações…
Já posso imaginar quais são. Esse efeito pode não parecer muito user-friendly, mas os recursos empregados não servem apenas para esse propósito. Pode-se fazer muita coisa legal além disso, como por exemplo, traçar fotos, criar texturas, etc. Basta usar a criatividade. Outra coisa que pode te deixar com uma pulga atrás da orelha é a necessidade do ponto ter o preenchimento Indefinido. É algo a se perguntar aos desenvolvedores do Inkscape, mas não é nada que impeça um artista de expressar suas idéias ;)

Tranquilo! Até o próximo tutorial então!
Já criei uma categoria para os tutoriais! Até o próximo! o/

Em terra de metacaractere, quem tem um asterisco é rei

17.05.08

Em terra de metacaractere quem tem um asterisco é rei

Não entendi absolutamente NADA!
Calma! Eu lembrei de você, e preparei esse mini-tutorial para você aprender hoje mesmo como criar expressões regulares simples! Prepare-se para avançar mais um grau na escala da nerdisse!

Expressões regulares? Isso é algum tipo de regra de português? Eu detestava aquelas aulas…
Não, não… é algo bem mais complexo e… divertido. Vamos imaginar a seguinte situação: você trabalha numa empresa de desenvolvimento de software como programador (claro, afinal, esse exemplo seria inviável se você fosse o faxineiro) e seu chefe pediu para o Vagabond Controlator Plus, o software que você está desenvolvendo, ser capaz de ler arquivos de texto com registros dos acessos dos funcionários ao sistema de ponto da empresa, estruturado dessa forma:

12:45 Tinkie Winkie
13:50 Dipsie Silva
14:30 Lala Tasty Cream
14:50 Po McCartney
20:20 Bozo The Clown

Sua missão, bravo guerreiro, é descobrir quais funcionários estão chegando atrasados na empresa (depois das 14h). Como você faria isso?

Ah, é fácil! Basta ler o arquivo, gerar uma string para cada linha, separar a parte da hora e converter para número, aí verifica se…
Pára! Trabalho demais para pouca coisa. As ER (expressões regulares) existem para te ajudar. Com elas podemos buscar e substituir informações em um texto, de forma rápida e fácil. Para o exemplo acima, uma das possíveis expressões pode ser simplesmente:

^(1[4-9]|2[0-3]):[0-5]\d.*$

Minha nossa, o que é ISSO!?
Calma! Não entre em pânico! Depois de algum estudo, essa monstruosidade acima pode ser facilmente compreendida. Como o assunto é muito extenso, vou explicar apenas os conceitos abordados no quadrinho. Dica: use o RegexPal para testar as expressões, inclusive o exemplo acima. Lembre de marcar a caixinha ““.

1 – O ponto
O ponto casa com qualquer coisa. Ex:

Expressão:  m.t.
Texto:        Ele entrou no mato com a moto

A expressão significa: ache palavras que comecem com m, tenham um caractere qualquer na segunda posição, um t, e termine com um caractere qualquer. Assim, ele encontra as palavras mato e moto. Agora dê um pulinho no RegexPal e faça o teste. Legal, não? :)

2 – O metacaractere guloso
Quando um ponto se junta a um asterisco, ele fica malvado e vira o curinga (não é aquele do Batman), um ser maligno devorador de mundos, caracteres e criancinhas. O asterisco ao lado dele significa: “ache zero ou mais caracteres quaisquer”.

Expressão: a.*i
Texto:       aaaaaaai! Meu pé, seu idiota!

No exemplo acima, o esperado seria que a expressão casasse com “aaaaaaai“, mas ele casou até a última letra “i” da frase, porque o .* é ganancioso e não mede esforços para conseguir aquilo que deseja. Ele devora tudo que vê pela frente. Isso é útil em alguns casos, mas não se deve exagerar, caso contrário a ER poderá casar com caracteres indesejáveis.

Nota: Os metacaracteres são caracteres especiais que servem para montar nossas expressões. Exemplos:  (., *, +, ?, [], (), {}… ).

3 – Entrando na lista dos procurados
Com a lista podemos determinar quais caracteres estamos procurando numa determinada posição. A lista é um conjunto de caracteres entre colchetes. Ex:

Expressão: [mprg]ato
Texto:       o gato pegou o rato, que mordeu o pato, que entrou no mato

Traduzindo: procure palavras que comecem com “m”, “p”, “r” ou “g” e terminem com “ato”. Se colocarmos o coringa dentro de uma lista, o que acontece? Como Aurélio diz em seu livrinho de expressões regulares, “dentro da lista, todo mundo é normal”. Ex:

Expressão: [.*]
Texto:       Olá. Sua senha é ****.

O curinga perde seus poderes de devorador de mundos e torna-se uma expressão “ache um ponto ou um asterisco”, e casa apenas com os pontos e asteriscos do texto. Vira um caractere normal, sem poderes e tendo que pegar ônibus para trabalhar.

4 – Grupo de apoio
Tal como em expressões matemáticas, servem para simplificar e organizar a ER, além de outras vantagens: Ex:

Expressão: (casa|testa)mento
Texto:       Vovô fará seu testamento após o casamento de Annie

A ER procura por palavras que começam com “casa” ou “testa” e terminam com “mento”. Note a barrinha |. Ela significa OU. Ou uma coisa ou outra. Se você tirar os parênteses, a expressão passará a significar: ache a palavra “casa” ou a palavra “testamento”. Teste isso no RegexPal. ;)

5 – A recuperação
Depois de ganhar um pouco de bom-senso, nosso metacaractere deixa de ser guloso e passa a ser altruísta. No grupo de apoio, instruíram ele a sempre andar com um sinal de interrogação, o que o torna menos capitalista, e casa apenas o necessário. Vamos voltar ao exemplo 2:

Expressão: a.*?i
Texto:       aaaaaaai! Meu pé, seu idiota!

Agora sim! Com um sinal de interrogação no final, ele vai parar de casar caracteres até encontrar o primeiro “i”. Pronto! O mundo está livre de mais um louco facínora.

6 – E todos foram felizes para sempre
E para que isso aconteça, você precisa ir além. Minhas sugestões:

Definição na Wikipédia
aurelio.net (Este post foi inspirado no livrinho do Aurélio. Compre! ;) )
regexpal.org (para testar)
regular-expressions.info
Como criar expressões regulares em Python
Cheat Sheet de regex (guia rápido)

Espero que esse pequeno tutorial seja útil. Aguardem mais tutoriais!

 << 1 2 3 4 >>