Obiekt Graphics rysuje koła i prostokąty, ale umożliwia również uzyskiwanie bardziej złożonych form, zwłaszcza gdy razem z metodami rysującymi użyjemy właściwości i metod klasy Math. Klasa Math zawiera typowe stałe matematyczne, takie jak
Math.PI
(w przybliżeniu 3,14159265...), czyli stały stosunek obwodu koła do jego średnicy. Zawiera również metody trygonometryczne, takie jak
Math.sin()
,
Math.cos()
o
Math.tan()
, oraz szereg innych. Rysując kształty przy użyciu tych metod i stałych, można uzyskać bardziej dynamiczne efekty wizualne, zwłaszcza w powiązaniu z technikami powtórzeń i rekurencji.
W wielu metodach klasy Math kąty należy podawać w radianach, a nie w stopniach. Przeliczanie tych jednostek należy do typowych zastosowań klasy Math:
var degrees = 121;
var radians = degrees * Math.PI / 180;
trace(radians) // 2.111848394913139
Poniższy przykładowy kod tworzy sinusoidę w celu zilustrowania różnicy między wynikami działania metod
Math.sin()
i
Math.cos()
dla tych samych parametrów.
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);
}