Flash+actionScript 3.0으로 극좌표 그래프 그리기 테스트.

어제 만든 x,y좌표 그래프 기반에서 공식만 좀 바꿔 함수 r = sin2θ 극좌표 그래프를 그려봤다.
역시 플래시 화면 위에서 마우스 드래그로 좌표 중심점의 이동이, 마우스 휠로 좌표의 확대, 축소가 가능하다.

직교좌표계가 가로축이 x, 세로축이 y였다면 극좌표계는 가로축이 θ, 세로축이 r인 좌표계로 직교좌표(x, y)와 (r, θ)사이에는

(x, y) = (r * cosθ, r * sinθ)
(r, θ) = (√ (x^2 + y^2), arctan(y/x))의 관계가 성립한다.

* 위키백과 극좌표계 항목

14/8/8 금

θ(theta)나 √(root) 같은 특수기호는 한글 입력 상태에서 ㄷ(수학용어들), ㅎ(그리스 문자들)을 입력한 뒤 한자키를 누르면 화면 우측 하단에 나오는 팝업창에서 선택하여 넣을 수 있다. 2009년 10월 4일 일기 참조

극좌표 그래프 그리기 함수

function drawFunc(sx:Number,ex:Number,term=10){
//(시작x값,끝x값,간격-기본10)
	var nx, ny, tx, ty;
	//var a=0.5, b=1; //달팽이꼴용 변수
	graphics.lineStyle(1, 0xff00cc);
	graphics.moveTo(centerX, centerY);
	for(var theta=0; theta < 2*Math.PI; theta += Math.PI/100){
		var r = 50 * Math.sin(2*theta); //클로버-맨앞 50은 확대용
		//var r = 50 * (1-Math.sin(theta)); //하트
		//var r = 50*(a + b*Math.cos(theta)); //달팽이꼴
		tx = r * Math.cos(theta);
		ty = r * Math.sin(theta); 
		nx = adjustCenter(tx,"x",mag);
		ny = adjustCenter(ty,"y",mag);
		graphics.lineTo(nx, ny);
	}
}