삼각함수 호도 각도 환산

3148 단어 자바 script
1. 좌표계 에 대하 여: (화면 좌 표 는 OpenGL 과 DirectX 의 차이 점)
         1. 엔진 의 경우 엔진 의 선택 은 어떤 좌표계 인 OpenGL 또는 DirectX (UI 좌표계 라 고도 함) 를 사용 하 는 지 를 결정 합 니 다. Egret 은 UI 좌 표를 사용 하 는 것 으로 알려 져 있 습 니 다.
           OpenGL 은 왼쪽 아래 (0, 0) 점 을 원점 으로 하고 0 도 를 바탕 으로 시계 반대 방향 으로 360 도 회전 합 니 다. 우 리 는 전체 360 ° 를 네 개의 상한 으로 나 눌 것 이다. 첫 번 째 상한 (0 - 90 °), 두 번 째 상한 (90 ° - 180 °), 세 번 째 상한 (180 ° - 270 °), 네 번 째 상한 (270 ° - 360 °)
            UI 좌표 계 는 왼쪽 상단 (0, 0) 점 을 원점 으로 하고 시계 방향 으로 360 ° 회전한다. OpenGL 의 네 번 째 상한 선 은 UI 좌표계 의 첫 번 째 상한 선 이 되 었 고, 세 번 째 상한 선 이 되 었 으 며, 두 번 째 상한 선 이 되 었 으 며, 첫 번 째 상한 선 이 네 번 째 상한 선 이 되 었 다.
2. 라디안:
        /**
         *   OpenGL     
         */
        public getAngel(_start:egret.Point,_end:egret.Point){
            var distance = egret.Point.distance(_start,_end);//      
            var point=new egret.Point(_end.x-_start.x,_end.y-_start.y);

            if(point.x == 0 && point.y > 0){
                //return Math.PI * 0.5*(180/Math.PI);          **(180/Math.PI);
                return Math.PI * 0.5      //  
            }else if(point.x == 0 && point.y < 0){
                return Math.PI * 1.5;
            }else if(point.x > 0 && point.y >= 0){
                return Math.atan(Math.abs(point.y/point.x));
            }else if(point.x < 0 && point.y >= 0){
                return (Math.atan(Math.abs(point.x / point.y)) + Math.PI * 0.5);
            }else if(point.x > 0 && point.y < 0){
                return (Math.atan(Math.abs(point.y / point.x)) + 1.5 * Math.PI);
            } else if(point.x < 0 && point.y < 0){
                return (Math.atan(Math.abs(point.x / point.y)) + Math.PI);
            }
            return 0;
        }

        /**
         *   DirectX     
         */
        public getAngelByUI(_start:egret.Point,_end:egret.Point){
            var distance = egret.Point.distance(_start,_end);//      
            var point=new egret.Point(_end.x-_start.x,_end.y-_start.y);

            if(point.x == 0 && point.y > 0){
                //return Math.PI * 0.5*(180/Math.PI);          **(180/Math.PI);
                return Math.PI * 0.5      //  
            }else if(point.x == 0 && point.y < 0){
                return Math.PI * 1.5;
            }else if(point.x > 0 && point.y >= 0){
                return Math.atan(Math.abs(point.y/point.x));
            }else if(point.x < 0 && point.y >= 0){
                return (Math.atan(Math.abs(point.x / point.y)) + Math.PI * 0.5);
            }else if(point.x > 0 && point.y < 0){
                return Math.atan(point.y/point.x); //  Egret       OpenGL  ,        ?
            } else if(point.x < 0 && point.y < 0){
                return (Math.atan(Math.abs(point.x / point.y)) + Math.PI);
            }
            return 0;
        }
      .        :
	     =  *180/π;     =  *π/180;  
	

좋은 웹페이지 즐겨찾기