【问题标题】:C++ library for drawing graphics [closed]用于绘制图形的 C++ 库 [关闭]
【发布时间】:2011-07-03 00:07:21
【问题描述】:

有人可以建议我一个好的、免费的、易于使用的 C++ 库,它允许在 microsoft windows 的窗口中绘制数学函数? (例如抛物线 x^2+5x+3=0)

【问题讨论】:

  • 在使用方面,我需要类似 C++ Builder (rad studio) 的 TChart 组件

标签: c++ math graphics drawing 2d


【解决方案1】:

我创建了一个绘制图形的工具,并在几个小时前发布了它。

https://www.youtube.com/watch?v=xD080qQVaD8&feature=youtu.be

https://github.com/burlachenkok/plotter_plusplus

要使用此工具,您可以使用台式计算机来显示图形。

您的目标项目可以在任何平台以任何语言在任何地方运行 - 更新图形只需通过网络发送数据。

【讨论】:

    【解决方案2】:

    肯定是 gnuplot,还有 gnuplot++ 库

    【讨论】:

      【解决方案3】:

      您提到了您的语言 (C++) 和平台 (Windows),但有一些框架可用于编写 Windows C++ 应用程序:Qt、MFC、C++Builder...此外,C 和 C++ 几乎可以与任何东西交互.因此,您决定使用哪个绘图库将取决于您为 UI 使用的框架以及您愿意引入什么样的外部接口或依赖项:

      【讨论】:

        【解决方案4】:

        另一个基于 wxWidgets 的选项是 wxArt2D,它有很多很好的功能可以将数学函数绘制为曲线,就像你可以轻松通过 y=140*cos(x/20) + 80*cos (x*2/20) + 40*cos(x*4/20)" 到一个曲线对象,它会被绘制出来,太神奇了! 看看这些screenshots 有一些曲线是由 string 格式的方程绘制的!

        【讨论】:

        • 您的示例公式末尾的双引号是二阶导数运算符还是只是右双引号?
        【解决方案5】:

        另一个选项是wxMathPlot,它基于wxWidgets
        来自它的网站:
        wxMathPlot 主要特点:

        • 完全由鼠标驱动的视图控制:平移、缩放、滚动、框 定位。
        • 印刷类。
        • 绘图窗口的屏幕截图保存(BMP、PNG 和 JPEG 格式)。
        • 用图例或鼠标坐标显示覆盖可移动框。
        • 可以设置边距以避免绘图覆盖轴标签。
        • 灵活的轴定位
        • 一系列有用的层,可直接从 STL 矢量、可移动对象、协方差椭圆、位图等中绘制数据。
        • 多平台:在 wxWidgets 的任何地方运行。

        【讨论】:

          【解决方案6】:

          由于您需要现成的绘图小部件,请使用Qwt

          它使用 Qt。

          您可以像 contero 的回答那样直接使用 Qt,而无需 Qwt,因为任务很简单。但是,Qwt 内置了很多图形功能,使用起来也很简单。

          【讨论】:

            【解决方案7】:

            我使用 Qt 编写了一个类似的程序。设置好 Qt 后它就很棒,但如果您从未使用过它(OpenGL、DirectX 等也一样),可能需要花费一些力气。

            您可以创建一个QImage 并将其设置为您想要的任何背景颜色,然后通过图像的宽度逐个像素地调用您的函数来运行您的程序以获取 y 值。大致:

            for (int i = 0; i < imageWidth; i++) {
               image->setPixel(i, yourFunction(i), lineColor);
            }
            

            创建 QImage 后,您可以使用 setPixmap() 将其附加到 QLabel。附加后,您可以在布局中显示图像。

            【讨论】:

              【解决方案8】:

              如果您使用的是 Vista/7,您也可以使用 GDI/+、OpenGL、Direct3D、Direct2D。那里有很多。

              【讨论】:

              • 我的意思是为此目的完成了一些库,这将允许我通过几个简单的步骤绘制函数图
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-10-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-05-09
              • 2011-08-02
              • 1970-01-01
              相关资源
              最近更新 更多