O objeto Graphics desenha círculos e quadrados, mas também pode desenhar formas mais complexas, especialmente quando os métodos de desenho são utilizados junto com as propriedades e os métodos da classe Math. A classe Math contém constantes matemáticas comuns, como
Math.PI
(aproximadamente 3.14159265...), uma constante para proporção de circunferência de um círculo em relação ao seu diâmetro. Ela também contém métodos para funções de trigonometria, incluindo
Math.sin()
,
Math.cos()
e
Math.tan()
entre outros. Desenhar formas utilizando esses métodos e constantes cria efeitos visuais mais dinâmicos, especialmente quando utilizados com repetição ou recursão.
Muitos métodos da classe Math esperam medidas circulares em unidades de radianos em vez de graus. A conversão entre esses dois tipos de unidades é um uso comum da classe Math:
var degrees = 121;
var radians = degrees * Math.PI / 180;
trace(radians) // 2.111848394913139
O exemplo a seguir cria uma onda senoidal e uma cossenoidal entre os métodos
Math.sin()
e
Math.cos()
para um determinado valor.
var sinWavePosition = 100;
var cosWavePosition = 200;
var sinWaveColor:uint = 0xFF0000;
var cosWaveColor:uint = 0x00FF00;
var waveMultiplier:Number = 10;
var waveStretcher:Number = 5;
var i:uint;
for(i = 1; i < stage.stageWidth; i++)
{
var sinPosY:Number = Math.sin(i / waveStretcher) * waveMultiplier;
var cosPosY:Number = Math.cos(i / waveStretcher) * waveMultiplier;
graphics.beginFill(sinWaveColor);
graphics.drawRect(i, sinWavePosition + sinPosY, 2, 2);
graphics.beginFill(cosWaveColor);
graphics.drawRect(i, cosWavePosition + cosPosY, 2, 2);
}