我正在开始一个新项目(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#也是一个选择。
答案 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是一个很棒的工具包和多平台