作业帮 > 综合 > 作业

用c++语言 如何画出以e为底的指数函数曲线 如函数y=exp(-x/200)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 00:20:49
用c++语言 如何画出以e为底的指数函数曲线 如函数y=exp(-x/200)
我把x以像素为单位画出的图不是一条连续的曲线,因为得到的y值全是int型的,画出的是一段段直线,请问哪位大侠可以给出一个解决方案?
void drawExp(HWND hWnd){

static RECT rc; if(rc.right==0) GetClientRect(hWnd,&rc); 
static float w=rc.right, h=rc.bottom, xo=w/2-w/4, yo=h/2+h/4;

 
HDC hdc=GetDC(hWnd);
SetGraphicsMode(hdc,GM_ADVANCED); 

SetMapMode(hdc, MM_LOENGLISH); 
SetViewportOrgEx(hdc,xo,yo,0L); 

 
MoveToEx(hdc,-w/2 +140,0,0L); LineTo(hdc,w, 0);  MoveToEx(hdc,0,-h/2+80,0L); LineTo(hdc,0,h/2+ 80); 
float r=100; 

float x=-w/2 +160, y=0; xo=x; yo=exp(-x/200)*r;  MoveToEx(hdc,xo,yo,0L); 
float dx=1;
do{
x+=dx; y=exp(-x/200)*r; 
LineTo(hdc,x,y); 

 
xo=x, yo=y; }while(x<w); 
ReleaseDC(hWnd,hdc); }