怎样用visual c++画函数曲线图?

作者&投稿:艾庙 (若有异议请与网页底部的电邮联系)
visual c++能不能画函数图像,能的话,怎么画?~

命令行的程序的话,TC有个graphic.h 貌似,vc的没用过。。。现在做图形程序的多。

如果你需要在GUI界面上绘图,你就需要专门的图形库来做支持。
简单点可以用微软的MFC,这个是可以画图的,会有各种图形绘制函数,想了解的话,看孙鑫的MFC教程,上面有几节专门有讲画刷,颜色,画圆,画线等等函数的使用。
简单来说就是借助MFC的绘图函数来绘图。MFC的绘图相对简单,孙鑫的课程看一遍就差不多了。

专业点的图形库,还有DirectX,OpenGL等等,需要安装它们的SDK然后看文档自己学。这个相对复杂点但是效率高,更能更强大,windows上的3D游戏,大多是DirectX的。。。

以上。

如:CMyView::OnDraw(CDC* pDC){CSketcherDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);if (!pDoc)return;pDC-LineTo(t,v); //从指针所在位置(默认是0,0)往指定位置画一条直线。
pDC-MoveTo(t,v); //将指针移动到指定位置。}如此一来随着时间和速度的每次改变程序都会绘制一条线段并将指针移动到该点上,但是为了实现这条完整的曲线还要做很多工作
1.WINDOWS系统中默认的以客户区左上角作为x,y坐标的0点,x轴和y轴非别是向右和向下,所以照如此画法该曲线是上下倒置的,必须要做出调整才能绘制出一个符合人习惯的曲线变化图。
2.该OnDraw()函数绘制时会产生一个非常严重的问题,因为调用OnDraw函数是会更新整个客户区,所以每当绘制出下一条线段时,前一个线段都将消失,所以还必须要设法存储所绘制的图形元素。

在OnTimer 函数中每隔一定时间进行重绘。
void CDrawView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
DrawPicture(); // 画图函数
}
void CDrawView::DrawPicture()
{
pBackDC->PatBlt(0,0,winx, winy, PATCOPY);
//画坐标轴及刻度
DrawCoordinate(pBackDC ,BLACKPEN, MainWindowLeft,MainWindowBottom - MAINHEIGHT, MainWindowLeft + MAINWIDTH, MainWindowBottom);
//标出x坐标刻度值
WriteCoordinateX(pBackDC, BLACKPEN, MainWindowLeft,MainWindowLeft + MAINWIDTH, MainWindowBottom);
//标出y坐标刻度值
WriteCoordinateY(pBackDC,BLACKPEN,MainWindowLeft,MainWindowBottom );
//输出实际宽度值
WriteMessage(pBackDC,MainWindowLeft,MainWindowBottom,MAINHEIGHT );
if ( pBackDC != NULL )
{
//画曲线图
DrawGraph(pBackDC,REDPEN,MainWindowLeft+MAINWIDTH,MainWindowBottom);
CDC *pDC = GetDC();
if (pDC != NULL)
{
//调用OnDraw()函数,将曲线图显示在屏幕中
OnDraw(pDC);
ReleaseDC(pDC);
}
}
}
void CDrawView::OnDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if (pDC != NULL)
pDC->BitBlt(0,0,winx, winy, pBackDC, 0, 0, SRCCOPY);
}

用CDC类的绘图函数.
绘图位置起点: MoveTo( int x, int y );
例如 my.MoveTo( 1, 1 );
画到某点: BOOL LineTo( int x, int y );
例如 my.LineTo( 2,2 );
再画到某点: BOOL LineTo( int x, int y );
my.LineTo( 3,3 );
my.LineTo( 4,4 );
my.LineTo( 5,5 );

颜色,线型等全用CDC类的绘图函数

用GDI的SetPixel函数
可以画出你想要的任何曲线
COLORREF SetPixel(
HDC hdc, // handle to DC
int X, // x-coordinate of pixel
int Y, // y-coordinate of pixel
COLORREF crColor // pixel color
);


电白县15050685493: 用VC++6.0编程绘制函数曲线,曲线方程已有 -
昌柏安万: CPaintDC dc(this); CPen pen(PS_SOLID,2,RGB(255,0,0)),*pPoldPen;//设置画笔参数含义调用MSDN pOldPen=dc.SelectObject(&pen); CPoint point_1(100,12),point_2(110,20); dc.MoveTO(point_1); dc.LineTo(point_2); dc.SelectObject(pPoldPen);::DeleteObject(&pen); 绘制两点之间的线段

电白县15050685493: 如何画任意函数的曲线图,可以以y=x^2为例,最好有完整的程序(用C++实现) -
昌柏安万: 现在已知一组数据x,y,用visual c++实现在直角坐标系中的曲线图.小弟刚学c++,望各位大侠支招^_^ 比如这组数据是:x y 1 1 2 2 3 3 4 4 5 5 当然这是假设的数据,实际的数据不止这些!(如若,您对我的答复满意,请点击左下角“好评”,谢谢您的采纳.)

电白县15050685493: Visual C++中绘制二维函数曲线用什么控件最好?
昌柏安万:可以使用NI的Measurement Studio中graph控件你将x轴和y轴的数据直接给该控件就行了,很方便的可以用它的ITEM("Plot-1").ChartXY(x_data,y_data)将你要显示的数据送给它就ok了具体的你可以看一下NI的帮助注意,这个控件你要安装Measurement Studio才可以要注册的

电白县15050685493: 如何实现C++画曲线 -
昌柏安万: 绘制曲线:#include #include int main() { double y; int x,m; for(y=1;y>-1;y-=0.1) /*y为列方向,范围从1到-1,步长为0.1*/ { m=acos(y)*10; for(x=1;x cout cout for(;x cout cout } return 0; }

电白县15050685493: 怎么用C语言绘制函数图像,要用visual c++6.0可以运行出来 -
昌柏安万: 需要Window图像编程,Window编程就是基于C语言的,在Visual C++6.0可以编写Win32程序

电白县15050685493: visual c++能不能画函数图像,能的话,怎么画? -
昌柏安万: 命令行的程序的话,TC有个graphic.h 貌似,vc的没用过...现在做图形程序的多.如果你需要在GUI界面上绘图,你就需要专门的图形库来做支持.简单点可以用微软的MFC,这个是可以画图的,会有各种图形绘制函数,想了解的话,看孙鑫的MFC教程,上面有几节专门有讲画刷,颜色,画圆,画线等等函数的使用.简单来说就是借助MFC的绘图函数来绘图.MFC的绘图相对简单,孙鑫的课程看一遍就差不多了.专业点的图形库,还有DirectX,OpenGL等等,需要安装它们的SDK然后看文档自己学.这个相对复杂点但是效率高,更能更强大,windows上的3D游戏,大多是DirectX的...以上.

电白县15050685493: Visual C++中数组画曲线! -
昌柏安万: CClientDC dc(this);for(int i=0;i<MAX;i++)//假设你数组中有MAX个坐标点{ dc.SetPix(arr[i].x,arr[i].y,RGB(0,0,255));//假设坐标数组为arr{

电白县15050685493: 如何用c++画数据曲线图 -
昌柏安万: 1、打开Matlab软件,并在命令窗口输入矩阵A和B以及plot(A,B) 2、按下enter键,图便出来了. 3、点击File,再点击Save As,这样便可以以导出图了.

电白县15050685493: 在c++中,如何不用数组,在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 -
昌柏安万: #include<stdio.h>#include<math.h> int main() { double y; int x, m; for(y=1;y>=-1;y-=0.1) { m = acos(y)*10; for(x=1; x<m; x++) printf(" "); printf("*"); for(; x < 62-m ;x++)printf(" "); printf("*\n");}return 0; }

电白县15050685493: 如何在VC++中用OpenGL绘制NURBS曲线曲面 -
昌柏安万: 基本几何图元是OpenGL进行建模的最基本的方法,但其对较复杂真实物体的建模则比较困难.对于这些复杂物体的建模,需要用到OpenGL基本库和功能库函数(gl库和glu库)以对图元进行扩展并完成法向计算、曲线生成和曲面构造等内容....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网