如何把复杂的数学公式用vc++画出曲线图
3个回答
展开全部
LZ莫激动,这个和学什么的没关系,其实在看到问题我的第一感觉也是取点多点就OK了,测试了一下似乎确实效果不理想。其实这只是"显示"的问题,对工程曲线来说,要求图像显示效果理想有的时候可以增加修正系数,只要保存的数据是真实的就可以了。
y=x^2函数在Windows下即使x的增量较小,导致y方向的增量的显示值也会比较明显,所以可以人为地修改y值增量的大小,让它接近于"理想",以下的图片是取y=x^2和y=0.01*x*x时的不同曲线,后者可以达到较平滑的效果,当然,这时实际显示的图像已经不是y=x^2了,只是通过程序"模拟"而已。
以上不知能不能提供些许帮助,不能的话当我没说...
y=x^2函数在Windows下即使x的增量较小,导致y方向的增量的显示值也会比较明显,所以可以人为地修改y值增量的大小,让它接近于"理想",以下的图片是取y=x^2和y=0.01*x*x时的不同曲线,后者可以达到较平滑的效果,当然,这时实际显示的图像已经不是y=x^2了,只是通过程序"模拟"而已。
以上不知能不能提供些许帮助,不能的话当我没说...
展开全部
重写视图的OnDraw()函数
先取点,然后连线
我写了一个例子
void C画线View::OnDraw(CDC* pDC)
{
C画线Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
int x,y;
int a=100,b=500;
x=99;
y=fun(x); //自己写一个函数
pDC->MoveTo(x,y); //把坐标移到(x,y)
for(x=a;x<b;x++){
y=fun(x);
pDC->LineTo(x,y); //画线
}
}
先取点,然后连线
我写了一个例子
void C画线View::OnDraw(CDC* pDC)
{
C画线Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
int x,y;
int a=100,b=500;
x=99;
y=fun(x); //自己写一个函数
pDC->MoveTo(x,y); //把坐标移到(x,y)
for(x=a;x<b;x++){
y=fun(x);
pDC->LineTo(x,y); //画线
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就根据间隔 比如每次x=1 求出y 然后分别ondraw函数里面 moveto linetoto
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询