VC++画图问题
牛B框框,你试一下,你能画出y = x^2就不错了!靠。来一点真实的好不好!没有试过就不要来这里牛B。
三楼的那个不对,画的是一个y = - x^2的线。麻烦搞对啊!呵呵!
不好意思啊大哥!但你就这样给,什么都没有给我,一点点代码也行啊!我就是搞不出来的嘛!不然哪会这样子。我跟你说,我画的sin(x)就是一条直线。。 展开
有点难度,这样可以么?
CRect rect;
CPen pen(PS_SOLID,10,RGB(255,0,0));
CPen *pOldPen=dc.SelectObject(&pen); //加入一个新的红色画笔
GetClientRect(&rect); //获得客户区的大小
int nWidth=rect.Width();
int nHeigh=rect.Height();
CPoint aPoint[SEGMENTS];
for(int i=0;i<SEGMENTS;i++)
{
aPoint[i].x=(i*nWidth)/SEGMENTS;
aPoint[i].y=(int)((nHeigh/2)*(1-(sin((2*PI*i)/SEGMENTS))));
} //绘制各个正弦曲线点
dc.Polyline(aPoint,SEGMENTS); //将各个孤立点连接起来
前面定义了一下
#define SEGMENTS 500
#define PI 3.1415926
-x^2的线?不是吧?我画的没楼上的那个好看,你要的话,cloudlgh@sina.com我传给你吧
猜测你不行的问题在于:
y=sin(x)取得的值是小于1的。
而Windows的LineTo等函数参数是整数,会取整,导致你的实际Y值都成0了。
解决方法:
1。定义X,Y都需要double类型。
2。在调用LineTo等函数。先把X,Y的值放大10背或者更高。(X,Y直接*10)
2009-06-01
你怎么画的y=x^2就怎么画y = sin(x)啊
你这么说人并不知道你为什么画不出来,怎么给你解决?