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

我把x以像素为单位画出的图不是一条连续的曲线,因为得到的y值全是int型的,画出的是一段段直线,请问哪位大侠可以给出一个解决方案?
最新回答
浅谈失去的回忆

2024-11-23 15:53:01

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); }