본문 바로가기

FLASH/AS3.0기초

Math

Math 객체는 수학함수의 모음입니다.

프로그래밍 언어는 공학적인 용도로 쓰이는 경우가 많습니다.

Math객체는 많은 유용한 메서드들을 가지고 있습니다.

다른 언어와 같이, 수학 함수 및 값을 나타내는 메서드와 상수가 아래와 같이 많습니다.


각도 표시는 도가 아니라 라디안입니다.

1 라디안은 180도 입니다.

라디안 값을 계산하려면 다음 공식을 사용하고,

radians = degrees * Math.PI/180

 

라디안에서 도를 계산하려면 다음 공식을 사용합니다.

degrees = radians * 180/Math.PI

 

대부분 메서드와 상수의 특성은 static임을 유의하기 바랍니다.

즉 아래 예제와 같이 하면 됩니다.

 

var abs_1:int = Math.abs(-5);
var root_1:Number = Math.SQRT2;
var sin_1:Number = Math.sin(60*Math.PI/180) // 60도의 sin 값입니다
trace(abs_1); // 5
trace(root_1); // 1.4142135623730951
trace(sin_1); // 0.8660254037844386

 

 

Public 메서드

abs(val:Number):Number

[static] 매개 변수 val에 의해 지정된 숫자의 절대값을 계산하고 반환합니다.

acos(val:Number):Number

[static] 매개 변수 val에 지정된 숫자의 아크코사인을 라디안 단위로 계산하여 반환합니다.

asin(val:Number):Number

[static] 매개 변수 val에 지정된 숫자의 아크사인을 라디안 단위로 계산하여 반환합니다.

atan(val:Number):Number

[static] 매개 변수 val에 지정된 탄젠트 값에 해당하는 각도를 라디안 단위로 계산하여 반환합니다.

atan2(y:Number, x:Number):Number

[static] y/x 점의 각도를 라디안 단위로 계산하여 반환합니다. 각도를 측정할 때는 원의 x 축에서부터 반시계 방향으로 측정합니다. 0,0은 원의 중심을 나타냅니다.

ceil(val:Number):Number

[static] 지정된 숫자나 표현식의 올림값을 반환합니다.

cos(angleRadians:Number):Number

[static] 지정된 각도의 코사인을 라디안 단위로 계산하여 반환합니다.

exp(val:Number):Number

[static] 자연 로그의 밑수(e)를 매개 변수 x에 지정된 지수로 거듭제곱한 값을 반환합니다.

floor(val:Number):Number

[static] 매개 변수 val에 지정된 숫자 또는 표현식의 내림값을 반환합니다.

hasOwnProperty(name:String):Boolean

지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.

isPrototypeOf(theClass:Object):Boolean

Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.

log(val:Number):Number

[static] 매개 변수 val의 자연 로그를 반환합니다.

max(val1:Number, val2:Number, ... rest):Number

[static] val1과 val2 또는 더 많은 값을 평가하고 가장 큰 값을 반환합니다.

min(val1:Number, val2:Number, ... rest):Number

[static] val1과 val2 또는 더 많은 값을 평가하고 가장 작은 값을 반환합니다.

pow(val1:Number, val2:Number):Number

[static] val1을 val2만큼 거듭제곱한 값을 계산하여 반환합니다.

propertyIsEnumerable(name:String):Boolean

지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.

random():Number

[static] 0 <= n < 1인 경우 의사 난수 n을 반환합니다.

round(val:Number):Number

[static] 매개 변수 val의 값을 가장 가까운 정수로 반올림하여 반환합니다.

setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void

루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.

sin(angleRadians:Number):Number

[static] 지정된 각도의 사인을 라디안 단위로 계산하여 반환합니다.

sqrt(val:Number):Number

[static] 지정된 숫자의 제곱근을 계산하여 반환합니다.

tan(angleRadians:Number):Number

[static] 지정된 각도의 탄젠트를 계산하여 반환합니다.

toString():String

지정된 객체의 문자열 표현을 반환합니다.

valueOf():Object

지정된 객체의 프리미티브 값을 반환합니다.

 

Public 상수

E : Number = 2.71828182845905

[static] 자연 로그의 밑수에 대한 수학 상수이며 e로 표현됩니다.

LN10 : Number = 2.302585092994046

[static] 10의 자연 로그에 대한 수학 상수입니다. 이 상수는 loge10으로 표현되며 근사값은 2.302585092994046입니다.

LN2 : Number = 0.6931471805599453

[static] 2의 자연 로그에 대한 수학 상수입니다. 이 상수는 loge2로 표현되며 근사값은 0.6931471805599453입니다.

LOG10E : Number = 0.4342944819032518

[static] 밑수가 10인 상수 e(Math.E)의 로그에 대한 수학 상수입니다. 이 상수는 log10e로 표현되며 그 근사값은 0.4342944819032518입니다.

LOG2E : Number = 1.442695040888963387

[static] 밑수가 2일 때 상수 e의 로그(log2e)에 대한 수학 상수이며 근사값은 1.442695040888963387입니다.

PI : Number = 3.141592653589793

[static] 원주율에 대한 수학 상수입니다. 이 상수는 pi로 표시되며 값은 3.141592653589793입니다.

SQRT1_2 : Number = 0.7071067811865476

[static] 1/2의 제곱근에 대한 수학 상수이며 근사값은 0.7071067811865476입니다.

SQRT2 : Number = 1.4142135623730951

[static] 2의 제곱근에 대한 수학 상수이며 근사값은 1.4142135623730951입니다.

 

숫자의 올림, 반올림, 내림메서드 사용하기

trace(Math.ceil(1.4)); //올림메서드 2 출력
trace(Math.round(1.4)); //반올림메서드 1 출력
trace(Math.floor(1.4)); //내림메서드 1출력


 

특정한 두 수 범위내에서 랜덤하게 숫자를 추출하는 코드

function numRandom(max:int, min:int):int{
 return Math.floor(Math.random() * (max-min)) + min;
}

trace(numRandom(20, 5));  //5에서 19까지의 임의의 수 반환



숫자 포맷(Format)설정 - toFixed, toPrecision

 

toFixed(fraction Digits:uint):String

숫자를 고정. 소숫점 표기법으로 표현된 문자열 반환

var num:Number = 217.331393;
trace(num.toFixed(2));  //217.33
trace(num.toFixed(4)); 
//217.3314

 

toPrecision(precision:uint):String

숫자를 지수표기법 또는 고정소수점 표기법으로 표현한 문자열을 반환

var num:Number = 321.323570;
trace(num.toPrecision(3));  //321
trace(num.toPrecision(7)); 
//321.3236


'FLASH > AS3.0기초' 카테고리의 다른 글

AS3.0 이벤트에 대해 알아봅시다.  (0) 2013.11.14
클래스로 코딩하기  (0) 2012.10.29
Document 클래스의 이해  (0) 2012.10.29
클래스와 객체  (0) 2012.10.29
OOP란  (0) 2012.10.25
타이머  (0) 2012.10.25
AS2.0 과 AS3.0의 대표적인 차이점  (0) 2012.10.25
Object 클래스  (0) 2012.10.25
Array  (0) 2012.10.25
String  (0) 2012.10.25