1

Visual Studio 2010を使用してC#から少し始めました

プログラムには3つのtextBoxと2Dポイントを回転させるためのボタンがあります。これらのtextBoxcoordenadaX、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、Angle = 180正解は新しい2Dポイントになります:-10:-10

4

1 に答える 1

3

Math.SinMath.Cos度ではなくラジアンを使用します。180回転ではなく回転を指定するpiと、正しい答えが得られることがわかります。

于 2012-07-24T20:24:12.930 に答える