2012-07-24 91 views
1

我使用Visual Studio 2010开始有点用C#旋转2D对象C#

方案有3个文本框和一个按钮,旋转2D点我得到这些的textBox coordenadaX,coordenadaY和角度需要计算和显示新的2D点有以下代码:

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); 

     } 
    } 

例如用户报告:coordenadaX = 10,coordenadaY = 10,角= 180的正确答案将是新的2D点: - 10:-10

回答

3

Math.SinMath.Cos使用弧度,而不是度。指定轮换pi而不是180,您会发现您得到正确的答案。