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);