【问题标题】:Best general cross-platform solution for drawing (primitives, lines, etc) in C++?用 C++ 绘制(基元、线条等)的最佳通用跨平台解决方案?
【发布时间】:2011-11-25 03:39:38
【问题描述】:

我有很多使用 Java、python、C# 和 C 编写的经验,主要是出于爱好。在我编写的所有涉及显示(模拟、绘图等)的应用程序中,我总是只使用我正在使用的任何框架(Swing Canvas、.NET Canvas、pygame)的股票“Canvas”类对于python)。

这样做的缺点是所有这些在绘图方面都有略微不同的范式。

我正在使用 C++ 开始一个项目,并且想知道跨平台绘图的最佳解决方案是什么。 OpenGL 显然是非常低级的,但是 OpenGL 之上的某种库会很好。我听说过/读过 Cairo、SDL 等,但还不知道该怎么做。我已经在使用 wxWidgets 作为界面,但更愿意使用更标准的东西,而不仅仅是 wxWidgets 画布。显然,绘制线条和形状的能力很重要,而不仅仅是显示图片之类的。

感谢您的指导!

【问题讨论】:

  • 你看过 SFML 吗?
  • 不,但它确实看起来很有希望。不敢相信我在谷歌搜索时没有偶然发现它。谢谢!
  • 另外请注意,Qt 不仅仅是图形(SFML 也不是),但据我了解,SFML 更适合图形,而 Qt 主要用于 GUI,(尽管您可以在其中制作图形,但 SFML 特别适用于图形)。
  • 可能 SDL 的级别不如 OpenGL。

标签: c++ graphics cross-platform drawing


【解决方案1】:

我会考虑使用Qt,尤其是它的Graphics View 框架。 (Qt 适用于 Linux、Windows、MacOSX)。

【讨论】:

  • Qt 也适用于 Symbian、Android(虽然这个有点好用)、任何其他 X(*BSD、Solaris、...)、...
【解决方案2】:

SDL 是 SimpleMedia Direct Layer,它基本上是与帧缓冲区和音频设备接口的通用接口。如果您想创建窗口等,它没有跨平台工作的通用结构。

Cairo 用于绘制图形,但仍以低于 WxWidgets 提供的水平运行。

C++ 没有提供任何标准,所以要么使用特定平台,要么使用像 Qt(Basile 已经提到)这样的跨平台库,或者坚持使用 wxWidgets。两者都很流行并被广泛使用,尽管 Qt 可能更为知名和使用(尽管这只是意见)。我在工作中使用过 Qt,它非常跨平台且非常易于使用(但非常广泛,因此请准备阅读大量文档)。幸运的是,它还有大量文档和可用示例。

另外,wxWidgets 和 Qt 都具有多种语言的绑定,因此您可以将其中的知识用于多种其他语言。

【讨论】:

    【解决方案3】:

    Open Frameworks 非常容易使用,并附带大量示例...
    它独立于平台,让我想起了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 2021-07-15
      • 1970-01-01
      • 2013-08-17
      相关资源
      最近更新 更多