分数のペン幅で奇妙な動作が見られます。何が起こっているのか誰かが説明できるのだろうか. Paint イベントに応答して、フォーム上に四角形を描画します。
private void Form1_Paint(object sender, PaintEventArgs e)
{
const float width = 1.996093F;
Rectangle rectangle = new Rectangle(10, 10, 20, 20);
using (Pen pen = new Pen(Color.Black, width))
{
e.Graphics.DrawRectangle(pen, rectangle);
}
}
幅が 0 ~ 1.996093 の場合、幅が 1 ピクセルの四角形が得られます。幅が 1.996094 ~ 2.003906 の場合、幅が 2 ピクセルの長方形が得られます。2.003907 から 3.996093 までは 3 ピクセルなどです。さらに奇妙なことに、幅が 1.9960937 の場合、上端の幅が 2 ピクセルで、他の端の幅が 1 ピクセルの四角形が得られます。
ここで何が起こっているのか誰か説明できますか? カットオフポイントが1.5、2.5、3.5などになることを期待していました.