chapter 1. 사인 / 코사인 간단한 예제

2010. 6. 21. 00:24Animation

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
본내용은 "플래시 액션스크립트 3 애니메이션 " 에서 인용한 내용입니다 더욱 자세한 내용은 책을 참고 바랍니다


이제 실제로 예제를 통해서 이해를 할려고 할텐데 아무래도 제가 설명하는 글보다는

여기 쉬프트 카페 이 강좌 을참고 바랍니다. 디바이트 라는 분이 너무 삼각함수에 대해 잘 설명해서 올려두었습니다 .^^ 

애니메이션 책보다 쉬프트카페의 글을 보고 이해를 더 많이 된듯 합니다 ^^

1. arrow 클래스 ( 본문책 47페이지 ) 을 이용한 단순 X 값에 의한 이동

sin 과 cos 값을 쉽게 제가 x 와 y 값으로 이해하라고 했는데 여기 이 예제를 보면 약간의 혼동이 오실것 입니다




package
{
	import flash.display.Sprite;
	import flash.events.Event;

	/**
	 * 삼각함수 사인 / 코사인을 예제로 이해하자
	 * @author Hazbola
	 * 
	 */	
	public class Chapter2_Math extends Sprite
	{
		
		private var arrow: Arrow;  // 47페이지에 있는 화살표 드로잉 
		public function Chapter2_Math()
		{		
			this.arrow = new Arrow();
			this.addChild( arrow );
			this.arrow.y = 200;
			
			this.addEventListener( Event.ENTER_FRAME, enterEH );
		}
		
		private var ang: int = 0;
		private function enterEH ( e: Event ): void
		{
			this.ang += 6; // 가속도 
			
			// +200 값 안에서 움직이게 하기 위한 값 
			// * 10 은 이동값 
			
			this.arrow.x = ( Math.cos( radiansResult( ang ) ) * 10 ) + 200;
			
			// con 과 sin 의 차이점 알아보기  
			//this.arrow.x = ( Math.sin( radiansResult( ang ) ) * 10 ) + 200;
		}
		
		/**
		 * 
		 * 라디안 계산
		 * radians = degrees * ( Math.PI / 180 ) 
		 * @param degrees : 도 ( ex : 30도 / 90 도 );
		 * @return 라디안 결과값
		 * 
		 */		
		private function radiansResult ( $degrees: Number ): Number
		{			
			var radians: Number = $degrees * ( Math.PI / 180 );
			return radians;
		}
	}
}
보시면 아마 cos 과 sin 차이점을 못느끼실 것입니다 이부분에 대한 설명은 쉬프트 카페 이 강좌 여길를 참고 바랍니다.

2. x, y 값에 의한 원운동



package
{
	import flash.display.Sprite;
	import flash.events.Event;

	/**
	 * 삼각함수 사인 / 코사인을 예제로 이해하자
	 * @author Hazbola
	 * 
	 */	
	public class Chapter2_Math extends Sprite
	{
		
		private var arrow: Arrow;  // 47페이지에 있는 화살표 드로잉 
		public function Chapter2_Math()
		{		
			this.arrow = new Arrow();
			this.addChild( arrow );
			this.arrow.y = 200;
			
			this.addEventListener( Event.ENTER_FRAME, enterEH );
		}
		
		private var ang: int = 0;
		private function enterEH ( e: Event ): void
		{
			this.ang += 6; // 가속도 
						
			this.arrow.x = ( Math.cos( radiansResult( ang ) ) * 50 ) + 200;		
			this.arrow.y = ( Math.sin( radiansResult( ang ) ) * 50 ) + 200;
		}
		
		/**
		 * 
		 * 라디안 계산
		 * radians = degrees * ( Math.PI / 180 ) 
		 * @param degrees : 도 ( ex : 30도 / 90 도 );
		 * @return 라디안 결과값
		 * 
		 */		
		private function radiansResult ( $degrees: Number ): Number
		{			
			var radians: Number = $degrees * ( Math.PI / 180 );
			return radians;
		}
	}
}

보시면 아까 제가 앞에서 설명드린 cos 값과 sin 값을 왜 x 와 y 로 이해하라는건지 이해가 가실것 입니다 ..^^
본 예제는 이해를 쉽게 하기위해 라디안으로 계산해주는 리턴함수를 사용하였습니다.. 양해 바랍니다