是否有C或c++的高级图形绘制API ?

Is there a high level shape drawing API for C or C++?

本文关键字:图形 绘制 API 高级 c++ 是否      更新时间:2023-10-16

我正在启动一个新项目(Windows应用程序),它需要一个简单的图形界面。图形并不是应用程序的重点,它们背后的算法才是,所以我想花尽可能少的时间考虑图形。

我需要画简单的形状,用线连接它们,并标记形状和边缘。我理想的API看起来像

 n1 = Rectangle(width, height, center1);
 n1->label("Node1");
 n2 = Circle(radius, center2);
 l = Line(n1->rightEdge()->midpoint()), (n2->center()-Point(n2->radius,0));
 l->label("pathway",BELOW);

我知道我当然可以使用一个低级库来构建这个抽象级别。但我宁愿不要,如果已经做过了。具有这种抽象层次的图形库存在吗?我对C/c++也同样满意。c#也是一个选择。

由于编写这种高级系统通常很容易,给定低级绘图API,您通常不会看到这种2D场景图形库。这种场景中有明确的对象,你可以在对象的层次上移动对象。

我能想到的最接近的是WPF处理绘图的方式,您可以在其中创建图形对象并将其附加到窗口。

其他一切,无论是Cairo, AGG, Direct2D等都是即时绘图api。没有可以操作或附加标签的"对象"。你只需要在一个位置上画一些东西。如果你想移动某个东西,你必须把它画在新位置

我使用SDL来满足我的图形需求。我只在OpenGL上下文中使用它(它处理得很好),但它对于获得高效和可移植的图形工作非常友好。如果你不想处理OpenGL,有一些软件绘图例程可用。

微软推出了新的Windows Direct2D API,主要针对矢量图形。

也许AGG适合您。如果你后退几步,你也会发现一个更适合商业开发的许可证。

您也可以尝试使用qt libQt是一个伟大的工具包和多平台