怎样用visual c++画函数曲线图? 20
现在已知一组数据x,y,用visualc++实现在直角坐标系中的曲线图。小弟刚学c++,望各位大侠支招^_^比如这组数据是:xy1122334455当然这是假设的数据,实...
现在已知一组数据x,y,用visual c++实现在直角坐标系中的曲线图。小弟刚学c++,望各位大侠支招^_^
比如这组数据是:x y
1 1
2 2
3 3
4 4
5 5
当然这是假设的数据,实际的数据不止这些! 展开
比如这组数据是:x y
1 1
2 2
3 3
4 4
5 5
当然这是假设的数据,实际的数据不止这些! 展开
3个回答
展开全部
在OnTimer 函数中每隔一定时间进行重绘。
void CDrawView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
DrawPicture(); // 画图函数
}
void CDrawView::DrawPicture()
{
pBackDC->PatBlt(0,0,winx, winy, PATCOPY);
//画坐标轴及刻度
DrawCoordinate(pBackDC ,BLACKPEN, MainWindowLeft,MainWindowBottom - MAINHEIGHT, MainWindowLeft + MAINWIDTH, MainWindowBottom);
//标出x坐标刻度值
WriteCoordinateX(pBackDC, BLACKPEN, MainWindowLeft,MainWindowLeft + MAINWIDTH, MainWindowBottom);
//标出y坐标刻度值
WriteCoordinateY(pBackDC,BLACKPEN,MainWindowLeft,MainWindowBottom );
//输出实际宽度值
WriteMessage(pBackDC,MainWindowLeft,MainWindowBottom,MAINHEIGHT );
if ( pBackDC != NULL )
{
//画曲线图
DrawGraph(pBackDC,REDPEN,MainWindowLeft+MAINWIDTH,MainWindowBottom);
CDC *pDC = GetDC();
if (pDC != NULL)
{
//调用OnDraw()函数,将曲线图显示在屏幕中
OnDraw(pDC);
ReleaseDC(pDC);
}
}
}
void CDrawView::OnDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if (pDC != NULL)
pDC->BitBlt(0,0,winx, winy, pBackDC, 0, 0, SRCCOPY);
}
void CDrawView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
DrawPicture(); // 画图函数
}
void CDrawView::DrawPicture()
{
pBackDC->PatBlt(0,0,winx, winy, PATCOPY);
//画坐标轴及刻度
DrawCoordinate(pBackDC ,BLACKPEN, MainWindowLeft,MainWindowBottom - MAINHEIGHT, MainWindowLeft + MAINWIDTH, MainWindowBottom);
//标出x坐标刻度值
WriteCoordinateX(pBackDC, BLACKPEN, MainWindowLeft,MainWindowLeft + MAINWIDTH, MainWindowBottom);
//标出y坐标刻度值
WriteCoordinateY(pBackDC,BLACKPEN,MainWindowLeft,MainWindowBottom );
//输出实际宽度值
WriteMessage(pBackDC,MainWindowLeft,MainWindowBottom,MAINHEIGHT );
if ( pBackDC != NULL )
{
//画曲线图
DrawGraph(pBackDC,REDPEN,MainWindowLeft+MAINWIDTH,MainWindowBottom);
CDC *pDC = GetDC();
if (pDC != NULL)
{
//调用OnDraw()函数,将曲线图显示在屏幕中
OnDraw(pDC);
ReleaseDC(pDC);
}
}
}
void CDrawView::OnDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if (pDC != NULL)
pDC->BitBlt(0,0,winx, winy, pBackDC, 0, 0, SRCCOPY);
}
展开全部
用CDC类的绘图函数.
绘图位置起点: MoveTo( int x, int y );
例如 my.MoveTo( 1, 1 );
画到某点: BOOL LineTo( int x, int y );
例如 my.LineTo( 2,2 );
再画到某点: BOOL LineTo( int x, int y );
my.LineTo( 3,3 );
my.LineTo( 4,4 );
my.LineTo( 5,5 );
颜色,线型等全用CDC类的绘图函数
绘图位置起点: MoveTo( int x, int y );
例如 my.MoveTo( 1, 1 );
画到某点: BOOL LineTo( int x, int y );
例如 my.LineTo( 2,2 );
再画到某点: BOOL LineTo( int x, int y );
my.LineTo( 3,3 );
my.LineTo( 4,4 );
my.LineTo( 5,5 );
颜色,线型等全用CDC类的绘图函数
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用GDI的SetPixel函数
可以画出你想要的任何曲线
COLORREF SetPixel(
HDC hdc, // handle to DC
int X, // x-coordinate of pixel
int Y, // y-coordinate of pixel
COLORREF crColor // pixel color
);
可以画出你想要的任何曲线
COLORREF SetPixel(
HDC hdc, // handle to DC
int X, // x-coordinate of pixel
int Y, // y-coordinate of pixel
COLORREF crColor // pixel color
);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询