C/C++绘制函数图像

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:26:21
在一个平面上画出几条不同的函数图像,还有类似于等高面(颜色深浅)的三维图。坐标轴,还有注释。给个例子就行了,稍带解释。

如果你说的是VC++的话:
你需要定义两个CPoint类型的变量m_prePoint用来存放前一个点的坐标,m_curPoint用来存放当前点的坐标。
x=-1;
m_prePoint = new CPoint(x, f(x));
然后使用pDC-> MoveTo(m_prePoint) pDC-> LineTo(m_curPoint),然后每循环一步,取得下一个点的坐标,把下一个点的坐标赋给m_curPoint,把上一步的哪个当前点坐标赋给m_prePoint,然后再使用MoveTo和LineTo画线,依次类推,就可以画出曲线了
因为实际屏幕上坐标点总是为正,而且为整数,所以在计算点位坐标的时候,你需要适当放大下,这样画出来的曲线光滑一些。

三维图要用OpenGL 或它的工具包 GLUT 画。
会三维,二维就太简单了。

源程序和例子见参考资料
Function graphics in 3D

可以建立一个Document/View结构。然后在View结构中画图。具体实现方法,就从sin(x)中取数,当然了数要取得密一些,即划分的区间要多。利用
lineto ,moveto等画直线语句进行连线。划分的区间越多,得到的曲线将越平滑。
另外一种方法,可以考虑利用MFC调用matlab的图形库,具体可参考《matlab扩展编程》清华大学出版社,里面有详细论述。

如果要话三维空间里的二次曲面,貌似用C++自身的绘图功能还比较困难,可能需要使用OpenGL等图形接口来编写。
如果仅仅是为了得到图像的话,推荐使用 Micrsoft Math 3.0 一款不错的数学软件。