Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Fazendo contas com códigos Actionscript 3

Recommended Posts

Texto original em inglês, de Saravanan, disponível em http://www.designscripting.com/2011/03/maths-and-actionscript-3-code-using-as3-with-math/

 

?

 

 

Cálculoe ActionScript juntos geram bons efeitosem Flash, como efeitos de partículas e jogos em flash que jogamos todos osdias. Hoje vamos dar uma olhada em ActionScript e cálculos.

 

 

Distância entre dois pontos:

Passe osdois pontos como argumentos para ter a distância entre dois pontos.

 

public function distance(p1:Point, p2:Point):Number {

var dx:Number = p2.x-p1.x;

var dy:Number = p2.y-p1.y;

 

return Math.sqrt(dx*dx + dy*dy);

}

Ângulo/Rotação entre dois pontos:

Vocêprecisa passar os quatro argumentos para ter o ângulo, (X1,Y1) pointA e (X2,Y2)pointB.

 

function getAngle (x1:Number, y1:Number, x2:Number, y2:Number):Number

{

var dx:Number = x2 - x1;

var dy:Number = y2 - y1;

var degree:Number = Math.atan2(dy,dx) * 180/Math.PI

return degree;

}

Rotação circular:

Gire umobjeto em um caminho circular através do centro dado.

 

var radius:Number = 40;

var speed:Number = 0.2;

var angle:Number = 0;

var centerX:Number = 30;

var centerY:Number = 30;

 

//Call rotate function inside Enterframe or Timer

function rotate( target:MovieClip ):void

{

target.x = centerX + Math.cos(angle) * radius;

target.y = centerY + Math.sin(angle) * radius;

angle += speed;

}

Descubra PAR ou ÍMPAR:

Utilize o resto da divisão para descobrir se um determinado número dado é PAR ou ÍMPAR(Odd or Even).

 

if( inputNumber % 2 == 0 )

trace( "Given Number is Even" );

else

trace( "Given Number is Odd" );

Encontre o ponto de intersecção entre duas linhas:

Escrevao código para encontrar o ponto de intersecção entre duas linhas, passe PointA(X1,Y1), Point B(X2,Y2), Point C(X3,Y3), Point D(X4,Y4).

 

public static function getLineIntersection (a1:Point,a2:Point,b1:Point,b2:Point):Point {

 

//calculate directional constants

var k1:Number = (a2.y-a1.y) / (a2.x-a1.x);

var k2:Number = (b2.y-b1.y) / (b2.x-b1.x);

 

// if the directional constants are equal, the lines are parallel,

// meaning there is no intersection point.

 

if( k1 == k2 )

return null;

 

var x:Number, y:Number;

var m1:Number, m2:Number;

 

// an infinite directional constant means the line is vertical

if( !isFinite(k1) ) {

// so the intersection must be at the x coordinate of the line

x = a1.x; m2 = b1.y - k2 * b1.x;

y = k2 * x + m2;

 

// same as above for line 2

} else if ( !isFinite(k2) ) {

m1 = a1.y - k1 * a1.x;

x = b1.x;

y = k1 * x + m1;

 

// if neither of the lines are vertical

} else {

m1 = a1.y - k1 * a1.x;

m2 = b1.y - k2 * b1.x;

x = (m1-m2) / (k2-k1);

y = k1 * x + m1;

}

 

return new Point(x,y);

}

Porcentagem do número entre minValue e maxValue:

Para encontrar a porcentagem de um número em um intervalo, por exemplo, quanto 14 representa entre 6 e 100.

 

trace(percentage(14,6,100)+"%")

 

function percentage( X:Number, minValue:Number, maxValue:Number ):Number

{

return (X - minValue)/(maxValue - minValue) * 100;

}

 

http://imasters.com.br/artigo/20981/flash/fazendo-contas-com-codigos-actionscript-3

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.