私は特定のグラフィックを描画するタスクがあります。この作業の一環として、あるドットを45度回転させる必要があります。別のポイントの周りの点を回転する
私はすでに数式の計算に2日間費やしましたが、それは正しくできませんでした。 私はこの特定のウェブサイトを含めて全面的に検索してきましたが、私はとても近づいていますが、私はまだそこにいません。
ここにある:私は質問の範囲外であるが位置を計算するための具体的な式を持っている私は、4つの異なるポイントに
を描画する必要が が、ここで私は、結果として得ているものですそれを:
int radius = 576;
int diameter = radius * 2;
Point blueA = new Point(561, 273);
Point greenB = new Point(273, 561);
Point yellowC = new Point (849, 561);
Point redD = new Point (561, 849);
今私は45度で、この点を回転させる必要があります。私はそれを達成するために、次のコードを使用します。
double rotationAngle = 45;
double rotationRadians = rotationAngle * (Math.PI/180);
int center = radius;
result.X = (int)(Math.Cos(rotationRadians) * ((double)result.X - (double)center) - (double)Math.Sin(rotationRadians) * ((double)result.Y - center) + (double)center);
result.Y = (int)(Math.Sin(rotationRadians) * ((double)result.X - (double)center) + (double)Math.Cos(rotationRadians) * ((double)result.Y - center) + (double)center);
をしかし、それは私がなってんだよ:すべてのヘルプははるかに
私は投稿後にこの投稿を見ました。この式は機能します。 –
それは完璧です!ありがとうございました。 現在のスクリーンショットは次のとおりです。 http://s8.postimage.org/e7r44klcl/result.png –
あなたは正しいです。かっこがひっくり返って単体テストで間違っていたので、OS libへの投稿者は手書きでこれをコピーしなければなりません。 –