2

我有时使用 windows gdi 区域进行图形绘制和失效/验证。例如,程序http://www.maxerist.net/main/soft-for-win/tubicus (oss) 仅使用区域(无位图或屏幕外缓冲区)制作。绘图是用 FillRgn 和 FrameRgn 制作的,无效和绘画是用 InvalidateRgn 和 CombineRgn 制作的,每个单元格(见截图)都是一个用 CreateEllipticRgn、CreatePolygonRgn 和 CombineRgn 创建的简单区域。

我有计划将它移植到 Linux 上。据我了解,Linux 中有很多图形库。是否有支持类似窗口的区域?

谢谢

4

2 回答 2

2

您想使用 X Window System,又名 X11,作为您的图形平台。它的客户端库称为 Xlib。该平台支持多边形区域。

在 Xlib 之上编写了许多库(Gtk、Qt、wxWindows 等),但您始终可以直接将低级 Xlib API 与其中任何一个一起使用。Qt 甚至支持椭圆区域。我不知道细节,但我猜它是在 X11 多边形区域之上实现的。

于 2011-06-02T13:52:08.810 回答
1

Qt 有很多绘画选项,并且QPainterQPainterPath对象一起使用可能很适合您。(Qt 分布中有样本)。您可以组合(添加/相交/减去)路径。

QGraphicsView framework也是一个不错的选择。

于 2011-06-02T13:44:33.253 回答