XNA GraphicsPath.AddLines 似乎有差距
XNA GraphicsPath.AddLines seems to have gaps
注意到一些似乎违背 C# 观点的奇怪行为 GraphicsPath.AddLines。
AddLines 是一系列 Connected 线段。以下代码似乎使这不是真的:
Bitmap BuildingBitmap = new Bitmap(MaxX - MinX, MaxY - MinY);
Graphics BuildingGraphics = Graphics.FromImage(BuildingBitmap);
BuildingGraphics.Clear(Color.Transparent);
GraphicsPath BuildingShape = new GraphicsPath();
BuildingShape.StartFigure();
BuildingShape.AddLines(BuildingPointsArray);
BuildingShape.CloseFigure();
BuildingGraphics.DrawPath(new Pen(Color.Black, 1.5f), BuildingShape);
BuildingPointsArray 是以下点的数组
7 0
58 6
55 45
62 45
60 59
67 60
66 82
47 80
46 96
0 92
7 0
使用 Excel 散点图绘制此图显示建筑物形状正确,并且使用 excel 画线函数没有间隙。
看起来我没有名声所以我不能 post 图片:这里是 imgur 链接:
Excel 图
http://i.imgur.com/aqSl2TC.png
然而,对于我的 png 输出,我们可以看到有两个差距:
添加线条 png
http://i.imgur.com/zgqD3YZ.png
有没有想过为什么会这样?我试过增加线条粗细,因为我认为这可能是渲染问题。没运气。
这些线当然是相连的,但它们似乎不太适合你的Bitmap
。
做到这一点:
Bitmap BuildingBitmap = new Bitmap(MaxX - MinX + 1 , MaxY - MinY + 1);
注意到一些似乎违背 C# 观点的奇怪行为 GraphicsPath.AddLines。 AddLines 是一系列 Connected 线段。以下代码似乎使这不是真的:
Bitmap BuildingBitmap = new Bitmap(MaxX - MinX, MaxY - MinY);
Graphics BuildingGraphics = Graphics.FromImage(BuildingBitmap);
BuildingGraphics.Clear(Color.Transparent);
GraphicsPath BuildingShape = new GraphicsPath();
BuildingShape.StartFigure();
BuildingShape.AddLines(BuildingPointsArray);
BuildingShape.CloseFigure();
BuildingGraphics.DrawPath(new Pen(Color.Black, 1.5f), BuildingShape);
BuildingPointsArray 是以下点的数组
7 0 58 6 55 45 62 45 60 59 67 60 66 82 47 80 46 96 0 92 7 0
使用 Excel 散点图绘制此图显示建筑物形状正确,并且使用 excel 画线函数没有间隙。 看起来我没有名声所以我不能 post 图片:这里是 imgur 链接: Excel 图 http://i.imgur.com/aqSl2TC.png
然而,对于我的 png 输出,我们可以看到有两个差距:
添加线条 png http://i.imgur.com/zgqD3YZ.png
有没有想过为什么会这样?我试过增加线条粗细,因为我认为这可能是渲染问题。没运气。
这些线当然是相连的,但它们似乎不太适合你的Bitmap
。
做到这一点:
Bitmap BuildingBitmap = new Bitmap(MaxX - MinX + 1 , MaxY - MinY + 1);