我需要从 GraphicPath 获取 Gdi+ 区域而不填充它,我不知道该怎么做。
平局胜于言语,所以这就是我想做的:
- 我有一个椭圆,而不是我想显示为未填充(已知线宽)
- 我有一个完整的矩形,我希望它从椭圆中减去自己。
- 然后,我想得到椭圆,未填充,减去部分
所以,这是我的代码:
// lGraphics and lBrush defined upper...
// Graphic paths
GraphicsPath lGraphicPathEllipse;
GraphicsPath lGraphicPathRectangle;
// Rectangles
Rect lRectEllipse(0, 0, 100, 100);
Rect lRectRectangle(10, -10, 100, 80);
// Add the shapes to the graphic pathes
lGraphicPathEllipse.AddEllipse(lRectEllipse);
lGraphicPathRectangle.AddRectangle(lRectRectangle);
// Create the regions
Region lRegionEllipse(&lGraphicPathEllipse);
Region lRegionRectangle(&lGraphicPathRectangle);
// Exclude the rectangle from the ellipse
lRegionEllipse.Exclude(&lRegionRectangle);
// Draw the ellipse region
lGraphics->FillRegion(&lBrush, &lRegionEllipse);
问题是我得到的实际上是这样的:
似乎从 GraphicPath 创建一个区域会自动填充该区域。是否可以从仅具有轮廓的 GraphicPath 获取区域?例如,通过给笔或线宽?
我已经阅读了有关 GraphicPath Widen 函数的内容,但它并没有真正做到我想要的。
奇怪的是,像这样简单的事情却做不到。
或者,也许我错过了什么!
感谢您的帮助,祝您有美好的一天。
亚历克斯。