VC++ MFC 绘制曲线
展开全部
在MFC中并没有现成的类或函数实现这一功能。不过有类似的函数,比如:
CDC::PolylineTo
BOOL PolylineTo( const POINT* lpPoints, int nCount );
CDC::Polyline
BOOL Polyline( LPPOINT lpPoints, int nCount );
你可以利用这两个函数,自己编写一个类或函数,实现你想要的画平滑曲线的功能。示例:
折线的作用示例——绘制一条正弦曲线
#include <math.h>
#define PI 3.1415926
#define SEGMENT 500
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
int nWidth = rect.Width();
int nHeight = rect.Height();
CPoint aPoint[SEGMENT];
for (int i=0; i<SEGMENT; i++)
{
aPoint[i].x = (i * nWidth) / SEGMENT;
aPoint[i].y = (int) ((nHeight / 2) * (1 - (sin((2*PI*i)/SEGMENT))));
}
dc.Polyline(aPoint,SEGMENT);
}
CDC::PolylineTo
BOOL PolylineTo( const POINT* lpPoints, int nCount );
CDC::Polyline
BOOL Polyline( LPPOINT lpPoints, int nCount );
你可以利用这两个函数,自己编写一个类或函数,实现你想要的画平滑曲线的功能。示例:
折线的作用示例——绘制一条正弦曲线
#include <math.h>
#define PI 3.1415926
#define SEGMENT 500
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
int nWidth = rect.Width();
int nHeight = rect.Height();
CPoint aPoint[SEGMENT];
for (int i=0; i<SEGMENT; i++)
{
aPoint[i].x = (i * nWidth) / SEGMENT;
aPoint[i].y = (int) ((nHeight / 2) * (1 - (sin((2*PI*i)/SEGMENT))));
}
dc.Polyline(aPoint,SEGMENT);
}
展开全部
在MFC中并没有现成的类或函数实现这一功能。不过有类似的函数,比如:
CDC::PolylineTo
BOOL PolylineTo( const POINT* lpPoints, int nCount );
CDC::Polyline
BOOL Polyline( LPPOINT lpPoints, int nCount );
你可以利用这两个函数,自己编写一个类或函数,实现你想要的画平滑曲线的功能。示例:
折线的作用示例——绘制一条正弦曲线
#include <math.h>
#define PI 3.1415926
#define SEGMENT 500
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
int nWidth = rect.Width();
int nHeight = rect.Height();
CPoint aPoint[SEGMENT];
for (int i=0; i<SEGMENT; i++)
{
aPoint[i].x = (i * nWidth) / SEGMENT;
aPoint[i].y = (int) ((nHeight / 2) * (1 - (sin((2*PI*i)/SEGMENT))));
}
dc.Polyline(aPoint,SEGMENT);
}
CDC::PolylineTo
BOOL PolylineTo( const POINT* lpPoints, int nCount );
CDC::Polyline
BOOL Polyline( LPPOINT lpPoints, int nCount );
你可以利用这两个函数,自己编写一个类或函数,实现你想要的画平滑曲线的功能。示例:
折线的作用示例——绘制一条正弦曲线
#include <math.h>
#define PI 3.1415926
#define SEGMENT 500
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
int nWidth = rect.Width();
int nHeight = rect.Height();
CPoint aPoint[SEGMENT];
for (int i=0; i<SEGMENT; i++)
{
aPoint[i].x = (i * nWidth) / SEGMENT;
aPoint[i].y = (int) ((nHeight / 2) * (1 - (sin((2*PI*i)/SEGMENT))));
}
dc.Polyline(aPoint,SEGMENT);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询