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的行为是否可以使用异常参数进行预测。我应该引入一些三角函数来强制图总是在我的网格内吗?
答案 0 :(得分:0)
实际限制是十亿正面或负面看到过去的问题(使用.net)
What are the hard bounds for drawing coordinates in GDI+?
我的猜测是你的数据库拉错了,如果你使用字符串数据存储并强制解析它,就会发生这种情况。
添加一个thread.sleep()并让Debug.WriteLine新拉(或只是断点的东西),可能是一个值奇怪或被奇怪地解析的值
答案 1 :(得分:0)
经过更多的实验,我终于用...修复了我的问题。
SolidBrush WhiteBrush = new SolidBrush(Color.White);
myGraphics.FillRectangle(WhiteBrush,0,0,5000,5000);
即。在绘制任何线条之前,我给了我的图形一个坚实的白色背景。在我在NULL背景上绘制黑线之前。我不知道为什么这会影响任何事情,但确实如此!