【问题标题】:C++/C# path/vector drawing library (2D)C++/C#路径/矢量绘图库(2D)
【发布时间】:2015-01-08 07:29:45
【问题描述】:

我正在寻找可以帮助我绘制多边形、矢量和路径的工具包/库。除了实际绘制 2D 元素之外,该库还应该能够为这些元素的基点绘制句柄,因此我可以通过拖放来移动它们。这意味着该库还处理拾取例程(或至少允许我定义回调)。

请看下图包含单线和三次贝塞尔曲线的路径(包括一些手柄和完整路径的封闭矩形):

example image of path including handles and enclosing rectangle

我不确定是否有这样的库(在 C++/C# 中)。还没有找到。我是否坚持自己绘制此示例图中的所有元素?

感谢您的阅读!

保罗

【问题讨论】:

标签: c# c++ vector path drawing


【解决方案1】:

你的要求太多了。我以前用Qt,很方便。使用信号和槽实现回调非常容易。 Qpainter 可以绘制很多形状,但我不确定它是否能满足您的要求。您可以了解有关 Qt 的更多信息,它有很多演示可供学习。

【讨论】:

  • 感谢您的回答!我习惯了 Qt,但我希望有一些更高级别的方法,而不是手动绘制每个元素。看来我必须。
【解决方案2】:

OpenGL 满足您的所有要求,实现您想要的似乎并不难。

上手可以参考

http://www.lighthouse3d.com/tutorials/glut-tutorial/setup-basics/

使用 GLUT,您可以轻松创建 OpenGL 窗口,创建和绘制图形。 鼠标和键盘事件也有回调,您可以在其中添加处理程序。即使您不想使用 GLUT,也有许多教程告诉您如何开始使用 OpenGL。

一旦您熟悉了基本的 OpenGL 技能,还有一个关于如何使用 OpenGL 创建更复杂的东西(例如贝塞尔曲线)的教程。虽然本教程不能完全按照您的意愿工作,但您仍然可以添加控制点,并使用 glut 函数进行拖放。

http://nehe.gamedev.net/tutorial/bezier_patches__fullscreen_fix/18003/

【讨论】:

  • 感谢您的回答! Qt 允许集成 OpenGL(没有样板代码),所以我考虑使用一些 OpenGL。 (很遗憾,我只能将一个答案标记为“解决方案”。)
  • 没关系 :) 实际上,我现在正在开发一个项目,使用 OpenGL 进行图形,Qt 用于用户界面。虽然我也是opengl的新手,但是用它编程真的很刺激!
猜你喜欢
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
相关资源
最近更新 更多