VC坐标系如何绘制曲线?并实现坐标系的缩放和鼠标滑轮滚动Y轴跟着增长???
void CWorkView::OnDraw(CDC* pDC) {
// TODO: Add your specialized code here and/or call the base class
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportOrg(rect.right-685,rect.bottom-575);
pDC->SetViewportExt(rect.right-200,rect.bottom);
pDC->SetWindowOrg(0,0);
pDC->SetWindowExt(1000,1000);
CString str;
pDC->Rectangle(0,0,rect.right-185,rect.bottom+25);//画一个矩形
CPen *pPenRed=new CPen(); //创建画笔对象
pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));//红色画笔
CPen *pPen=NULL;
CGdiObject *pOldPen=pDC->SelectObject(pPenRed);//保存当前红色画笔
pDC->MoveTo(20,20);//绘制坐标轴
pDC->LineTo(20,rect.bottom-20);//Y
pDC->LineTo(815,rect.bottom-20);//x
//绘制x轴刻度
for(int i=0;i<17;i++) //绘制最高刻度
{
str.Format("%d",i*128);
pDC->TextOut(30+48*i,rect.bottom,str);//控制间距
//绘制想x轴刻度
pDC->MoveTo(45+48*i,rect.bottom);
pDC->LineTo(45+48*i,rect.bottom-20);
}
for(i=0;i<33;i++) //绘制中间刻度
{
//绘制想x轴刻度
pDC->MoveTo(45+24*i,rect.bottom-5);
pDC->LineTo(45+24*i,rect.bottom-20);
}
for(i=0;i<128;i++) //绘制最低刻度
{
//绘制想x轴刻度
pDC->MoveTo(45+6*i,rect.bottom-10);
pDC->LineTo(45+6*i,rect.bottom-20);
}
//绘制y轴刻度
for(i=1;i<=7;i++)
{
str.Format("%d",i);
pDC->TextOut(2,rect.left+740-100*i,str); //标度
//绘制Y轴刻度
pDC->MoveTo(20,rect.left+740-100*i);
pDC->LineTo(35,rect.left+740-100*i);
}
for(i=2;i<=13;i++)
{
//绘制Y轴刻度
pDC->MoveTo(20,rect.left+740-50*i);
pDC->LineTo(30,rect.left+740-50*i);
}
for(i=10;i<70;i++)
{
//绘制Y轴刻度
pDC->MoveTo(20,rect.left+740-10*i);
pDC->LineTo(25,rect.left+740-10*i);
}
} 小弟初学VC 还望大侠们帮帮,我只绘制出了坐标系,不会绘制曲线,曲线数据从随机函数产生1~10个,怎样绘制在上边的坐标戏中???Y轴能跟着数据的高度而增长呢????