GDI + FillPolygon包括左侧和顶部轮廓?

问题描述 投票:0回答:2

我有一个使用GDI + FillPolygon()函数创建的梯形,但发现它的右侧和底部相距1个像素。我以为您通过了要填充的区域的点,但仔细阅读后会说它填充了多边形的内部,因为这样做就可以了。我实际发现的是,填充函数包括左和上(x,y),但不包括右和下(x,y)。为了简单起见,用矩形表示,填充(0,0)-(10,10)时,填充区域为(0,0)-(9,9)。我希望它是(0,0)-(10,10)或(1,1)-(9,9)。毕竟,给定的点都是x,y。所以我的问题是设计吗?为什么没有记录?还是我错过了什么?

TIA !!

winapi gdi+
2个回答
0
投票

至少对于矩形,这是在(绘制矩形)[https://docs.microsoft.com/en-us/windows/win32/gdi/drawing-rectangles]中记录的行为。此行为类似于包含源点但排除目标的线的工作方式(用LineTo绘制)。我不知道用SetWorldTransform记录的更改是否会更改绘制单个线条的方式。


0
投票

我没有您的问题,请参见下面的屏幕截图:

enter image description here

代码:

Graphics graphics(hdc);
SolidBrush solidBrush(Color(255, 255, 0, 0));           
Point point1 = Point(0, 0);
Point point2 = Point(0, 10);
Point point3 = Point(10, 10);
Point point4 = Point(10, 0);
Point points[4] = {point1,point2,point3,point4};
graphics.FillPolygon(&solidBrush, points, 4);

如果您的代码有任何差异,请在问题中添加您的代码和屏幕截图。

© www.soinside.com 2019 - 2024. All rights reserved.