是否有适用于C或C ++的高级形状绘制API?

时间:2011-09-25 03:35:00

标签: c++ c windows drawing shape

我正在开始一个新项目(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#也是一个选择。

5 个答案:

答案 0 :(得分:1)

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

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

其他所有内容,无论是开罗,AGG,Direct2D等,都是即时绘图API。您没有操纵或附加标签的“对象”。你只需在一个位置绘制东西。如果你想搬东西,你必须在新的位置画出东西。

答案 1 :(得分:0)

I use SDL满足我的图形需求。我只将它用于OpenGL上下文(它处理得很好)但它对于获得高效和便携的图形非常友好。如果您不想处理OpenGL,可以使用软件绘图程序。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

也许AGG会对你有用。如果你退后几步,你也会找到一个更适合商业开发的许可证。

答案 4 :(得分:0)

您也可以尝试使用qt lib qt是一个很棒的工具包和多平台