DrawLine は、定義された領域外の座標を処理できますか?
例えばmyGraphics.DrawLine(MyPen, -20, -80, 20, 90);
無限のキャンバスを使用したかのように、これが線を正しく生成することを期待しますが、グラフィック内のセクションのみをプロットします。
私のコードは次のとおりです。データベースに記録された座標から動きをプロットしています。時折、被写体がビットマップの端を越えて、予想よりも遠くに移動します。DrawLine に依存して処理していたため、この発生をチェックしません。
Bitmap Border = new Bitmap(5000, 5000);
Border.SetResolution(254, 254);
Graphics MyGraphics= Graphics.FromImage(Border);
Pen MyPen = new Pen(Color.Black, 1);
for (Int32 Point = 1; Point <= Points; Point++)
{
XCoord2 = XCoord1;
YCoord2 = YCoord1;
XCoord1 = *READ FROM DATABASE*
YCoord1 = *READ FROM DATABASE*
if (Point > 1)
{
MyGraphics.DrawLine(MyPen, XCoord1, YCoord1, XCoord2, YCoord2);
}
}
実際には、私のプロットはほとんどの場合うまくいきます。ただし、行が欠落しているグラフィックや、奇妙な座標に由来する不明瞭な行が表示されることがあります。
要約すると、DrawLine の動作は異常なパラメーターで予測可能である必要があります。プロットが常にグリッド内に収まるように三角法を導入する必要がありますか?