Paintイベントから呼び出された以下のコードが7つのブレードを描画しない理由を誰かが説明してもらえますか(NumberOfBlades = 7
この場合)。他のブレード番号(3〜7)の場合も、一部の角度でブレードが欠落しますが、4つのブレードでのみ機能します。それはある種の小さくてばかげた間違いであるとほぼ確信していますが、私はそれを理解することができません。
Matrix transformMatrix = new Matrix();
PointF center = new PointF(x2, y);
float angle = 360.0f / (float)pump.Calculations.NumberOfBlades;
for (int i = 0; i < pump.Calculations.NumberOfBlades; i++)
{
transformMatrix.Reset();
transformMatrix.RotateAt(angle * i, center);
blade.Transform(transformMatrix);
g.DrawPath(blackPen, blade);
}
編集
私は解決策を見つけました:
for (int i = 0; i < pump.Calculations.NumberOfBlades; i++)
{
transformMatrix.RotateAt(angle, center,MatrixOrder.Prepend);
g.Transform = transformMatrix;
//lopatka.Transform(transformMatrix);
g.DrawPath(blackPen, blade);
g.ResetTransform();
}
だから今私の質問は、なぜそれがこのように機能するのかということです。