DISTÂNCIA ENTRE DOIS MOVIE CLIPS


DISTÂNCIA ENTRE DOIS MOVIE CLIPS

Algumas vezes precisamos, no meio de algum projeto, saber a distância entre dois MovieClips (MCs). Este tutorial mostrará como fazer isso depois de uma recordação do Teorema de Pitágoras no plano cartesiano (distância entre dois pontos).

Antes de começar o tutorial propriamente dito, vamos recordar alguns conceitos matemáticos. Temos a seguir um triângulo retângulo:

Chamamos de triângulo retângulo ao triângulo que tem um de seus ângulos medindo 90º (ângulo reto, daí a origem de seu nome).

Os lados que formam o ângulo reto (neste caso os lados amarelo e azul) são chamados de catetos. O lado oposto ao ângulo reto, que também o maior dos três lados (neste caso em vermelho) é chamado de hipotenusa.

Um matemático grego chamado Pitágoras, descobriu algo curioso: ele elevou ao quadrado (multiplicou por si mesmo) cada um destes lados e observou que se somasse os quadrados dos catetos obteria o mesmo resultado do quadrado da hipotenusa!

Um exemplo: suponhamos que o lado azul mede 3, o lado amarelo mede 4 e o lado vermelho mede 5. Os quadrados dos lados são respectivamente: 3×3=9, 4×4=16 e 5×5=25. Ao somarmos os quadrados dos catetos (9+15), observamos que tem o mesmo valor que o quadrado da hipotenusa (25).

Após algumas tentativas empíricas e demonstrações matemáticas foi elaborado o enunciado do que chamamos de Teorema* de Pitágoras: “O quadrado da hipotenusa é igual à soma dos quadrados dos catetos”:

Portanto, se eu quiser saber qual é o valor da distância do ponto B até o ponto C (em outra palavras, o valor do lado “a”, o vermelho), basta fazer o seguinte cálculo:

Vamos então transpor esse triângulo para o plano cartesiano:

Para saber a distância de A até B, basta fazer a subtração:

Análogamente, para descobrir a distância de A até C, basta fazer a subtração:

Portanto, para descobrir a distância de B até C, basta aplicarmos a fórmula da distância entre dois pontos que descobrimos através do Teorema de Pitágoras!

Transpondo o que recordamos para calcular a distância (d) entre dois MCs, imaginemos o ponto B como o MC1 e o ponto C como o MC2, portanto para calcularmos a distância (d) entre os dois MCs, basta calcularmos a distância entre os pontos B e C, que em ActionScript fica assim:

Math.sqrt(((a._x-b._x)*(a._x-b._x))+((a._y-b._y)*(a._y-b._y)))

Para obtermos um valor arredondado, usaremos o Math.round:

Math.round(Math.sqrt(((a._x-b._x)*(a._x-b._x))+((a._y-b._y)*(a._y-b._y))));

Bom, agora que lembramos alguns detalhes que poderiam estar esquecidos, vamos ao projeto propriamente dito:

1.
Abra um arquivo Flash.

2.
Crie mais 4 layers e nomeie-as como: AS, MC1, MC2, Rótulo e Distância.

3.
Clique no frame 1 da layer MC1 e faça um desenho qualquer (eu por exemplo fiz uma oval) e transforme-a em um Símbolo de MC (teclando F8) dando-lhe um nome (eu dei o nome “exemplo”).

4.
Nomeie essa instância do MC que acabou de criar como “mc1″(sem as aspas).

5.
Clique no frame 1 da layer MC2 e arraste uma instância do MC criado para o Stage.

6.
Nomeie essa instância do MC que acabou de criar como “mc2″ (sem as aspas).

7.
Com o frame 1 da layer Rótulo selecionado, clique na ferramenta Text Tool (T) e em seguinda no Stage e digite o texto (Static Text): “Distância”.

8.
Clique no frame 1 da layer Distância. Em seguida novamente na ferramenta Text Tool (T), mas desta vez mude o tipo para Dynamic Text na comboBox do Painel Properties. Neste mesmo painel, atribua “distancia” ao campo Var. Tome o cuidado de posicionar ao lado do texto “Distância” para efeito de design.

9.
Clique no frame 1 da layer AS e digite o seguinte código:

var a;
var b;
var distancia;
a = _root.mc1;
b = _root.mc2;
distancia = Math.round(Math.sqrt(((a._x-b._x)*(a._x-b._x))+((a._y-b._y)*(a._y-b._y))));

 

Primeiro definimos as variáveis “a”, “b” e “distancia”;

Em seguida atribuímos às variáveis “a” e “b” os respectivos MCs: mc1 e mc2 (nomes que demos às instâncias do “exemplo”, lembra?)

Então calculamos a distância entre os dois MCs e atribuimos à variável distancia (que é o nome que demos ao Dynamic Text da layer Distância para que a distância seja impressa ao lado do rótulo.

10.
Tecle Ctrl+Enter e verá a distância ser impressa na tela.

Procure mudar a posição dos MCs e fazer diversos testes para ver as diferenças.

NOTA: *Teorema, em Matemática, é algo que pode ser provado

Escrito por Francisco on dezembro 29, 2006. Arquivado em Flash. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>