2012-07-24 2 views
1

나는 비주얼 스튜디오 2010을 사용 C 번호와 비트를 시작회전 2D 오브젝트 C#을

이 프로그램은 세 개의 텍스트 상자와 나는이 텍스트 상자 coordenadaX, coordenadaY와 각도를 얻을 2D 포인트를 계산하기 위해 필요 회전 버튼과 디스플레이가 , coordenadaY = 10, 각도 = 180 정답이 될 새로운 2D 점을 coordenadaX = 10 :

private void button1_Click(object sender, EventArgs e) 
     { 
      float x = float.Parse(textX.Text); 
      float Y = float.Parse(textY.Text); 
      double angulo = float.Parse(textAng.Text); 
      rotate(x, Y, angulo); 

     } 

     private void rotate(float cordX, float cordY, double angle) 
     { 

      double s = Math.Sin(angle); 
      double c = Math.Cos(angle); 


      double newX = cordX * c - cordY * s; 
      double newY = cordX * s + cordY * c; 


      lblResult.Text = ("" + newX + " : " + "" + newY); 

     } 
    } 

예를 들어 사용자의 보고서 : 새로운 2D 포인트는 다음과 같은 코드가 - 10 : -10

답변

3

Math.SinMath.Cos은 라디안을 사용하지만 그렇지 않습니다. 도. 180이 아닌 pi의 회전을 지정하면 정답을 얻게됩니다.