MFC图形界面绘制坐标系及正弦曲线
2017-04-04 12:14
316 查看
项目名:XOY2
void CXOY2View::OnDraw(CDC* pDC) { CXOY2Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; CRect rectClient; GetClientRect(rectClient); pDC->SetMapMode(MM_ANISOTROPIC); pDC->SetWindowExt(1000,1000); pDC->SetViewportExt(rectClient.right,-rectClient.bottom); pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2); pDC->MoveTo(-500,0); pDC->LineTo(500,0);//绘制X轴 pDC->LineTo(490,10); pDC->MoveTo(500,0); pDC->LineTo(490,-10);//绘制x轴箭头 for(int i=-5;i<=5;i++) { pDC->MoveTo(100*i,-5); pDC->LineTo(100*i,5); CString Str; Str.Format(_T("%d"),i); if(i!=0) { pDC->TextOut(100*i-5,-10,Str); } }//绘制X轴坐标尺 pDC->MoveTo(0,-500); pDC->LineTo(0,500);//绘制Y轴 pDC->LineTo(-10,490); pDC->MoveTo(0,500); pDC->LineTo(10,490);//绘制y轴箭头 for(int i=-5;i<=5;i++) { pDC->MoveTo(-5,100*i); pDC->LineTo(5,100*i); CString Str; Str.Format(_T("%d"),i); pDC->TextOut(-20,100*i-5,Str); }//绘制Y轴坐标尺 pDC->TextOut(490,-40,_T("X")); pDC->TextOut(-40,490,_T("Y")); CPen pen_Zuobixi,pen_sinx; pen_Zuobixi.CreatePen(PS_SOLID,4,RGB(0,0,0)); pen_sinx.CreatePen(PS_SOLID,2,RGB(0,0,255)); pDC->SelectObject(&pen_Zuobixi); double y,radian; pDC->SelectObject(&pen_sinx); for(int x=-500;x<500;x++) { //弧度=X坐标/曲线宽度*角系数*π //Y坐标=振幅*曲线宽度*sin(弧度) radian =x/((double)314.159)*3.14159; y=sin(radian)*100; pDC->MoveTo((int)x,(int)y); pDC->LineTo((int)x,(int)y); } pen_sinx.DeleteObject(); pen_Zuobixi.DeleteObject(); }
运行结果如下:
相关文章推荐
- 线性坐标系到对数坐标系的变换——EMC测试曲线的绘制
- 控制台绘制正弦/余弦曲线
- 正弦余弦曲线的绘制动画
- 趣味C程序100.1 .2 绘制正弦曲线
- 控制台绘制正弦曲线和余弦曲线同时显示
- C#WPF 如何绘制几何图形 图示教程 绘制sin曲线 正弦 绘制2D坐标系 有图有代码
- 使用plot绘制正弦与与余弦函数曲线图实例代码
- Python使用matplotlib绘制正弦和余弦曲线的方法示例
- 用SurfaceView绘制正弦曲线
- 用VB绘制正弦动画曲线
- 绘制正弦曲线
- 绘制正弦曲线,实现局部放大
- opengl绘制正弦曲线
- 绘制正弦曲线——在屏幕上用“*”显示0~360度的正弦函数sin(x)曲线
- Android利用SurfaceView绘制正弦曲线
- 正弦余弦曲线的绘制动画
- 【C#】第3章补充(一)如何在WPF中绘制正弦曲线
- 绘制正弦函数曲线
- 绘制正弦曲线
- 用Python绘制正弦曲线