2024年4月28日发(作者:)
把几个点(不在一条直线上)用平滑的曲线连起来。
只需介绍用什么类或函数,怎么用?谢谢
在MFC中并没有现成的类或函数实现这一功能。不过有类似的函数,比如:
CDC::PolylineTo
BOOL PolylineTo( const POINT* lpPoints, int nCount );
CDC::Polyline
BOOL Polyline( LPPOINT lpPoints, int nCount );
把一些数据存在一个数组中,如果点击一个按钮,可以在对话框的左边区域做出曲线
图,这些数据是坐标系中的纵坐标,横坐标取等间距就好。
把数据都放到一个数组里
建立坐标系,根据每个数据大小以及x,y轴确定没个点坐标
然后用循环MoveTo然后LineTo就成了
利用CDC *pDC=GetSC();
得到窗体的pDC 利用
for (int i=0;i<数组大小-2;i++)
{
(x[i],y[i]);
(x[i+1],y[i+1]);
}
你可以利用这两个函数,自己编写一个类或函数,实现你想要的画平滑曲线的功能。
示例:
折线的作用示例——绘制一条正弦曲线
#include
#define PI 3.1415926
#define SEGMENT 500
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
发布评论