C++绘图库

4

有人可以为我推荐一个好用的、免费的、易于使用的C++库,可以在Microsoft Windows窗口中绘制数学函数吗?(例如,抛物线x^2+5x+3=0)


我需要一个类似于C++ Builder(RAD Studio)的TChart组件,以实现使用简便性。 - BlackShadow
8个回答

15

如果您需要一个现成的绘图小部件,请使用Qwt

它使用Qt。

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

plot


5

另一个选项是基于wxWidgetswxMathPlot

wxMathPlot的主要特点:

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

4
我用Qt写了一个类似于这个的程序。一旦你设置好了,Qt是非常好用的,但如果你以前从未使用过它(OpenGL、DirectX等也是如此),可能需要付出一些努力。
你可以创建一个QImage并将其设置为任何背景颜色,然后通过像素逐个调用函数以获取y值来运行图像的宽度。大致如下:
for (int i = 0; i < imageWidth; i++) {
   image->setPixel(i, yourFunction(i), lineColor);
}

创建了QImage之后,您可以使用setPixmap()将其附加到QLabel上。一旦附加完成,您就可以在布局中显示该图像。


2
另一个基于wxWidgets的选项是 wxArt2D,它具有绘制数学函数曲线的许多优秀功能,例如您可以轻松地将此y=140*cos(x/20) + 80*cos(x*2/20) + 40*cos(x*4/20)传递给曲线对象并进行绘制,真是太棒了! 查看这些屏幕截图,其中一些曲线是以字符串格式绘制出来的!

你的示例公式末尾的双引号是二阶导数运算符还是仅仅是闭合双引号? - Stefan Monov

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

0

绝对是gnuplot和gnuplot++库。


0

0

如果你使用Vista/7,你可以使用GDI/ +、OpenGL、Direct3D、Direct2D等。有很多选择。


我的意思是有一些专门用于此目的的库,可以让我通过几个简单的步骤绘制函数图形。 - BlackShadow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接