VC++ MFC 绘制曲线
2个回答
展开全部
在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);
}
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
展开全部
在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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询