-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcurve.h
43 lines (32 loc) · 1.05 KB
/
curve.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef CURVE_H
#define CURVE_H
#include <QVector>
#include <QPoint>
#include <QMouseEvent>
#include <QPainter>
class Curve
{
public:
void mousePressEvent(QMouseEvent *event);//鼠标单击事件
void mouseMoveEvent(QMouseEvent *event);//鼠标移动事件
void mouseReleaseEvent(QMouseEvent *event);//鼠标释放事件
void drawBezier(QPainter &painter);
void drawnode(QVector<QPoint>& nodes,QPainter &painter);
QPoint getBezierPoint(QPoint a,QPoint b,double t);
int fact(int n); //阶乘函数
void drawFirstMovingCurve(QPainter &painter);
void drawCurve(QPainter &painter);
void recursive_bezier(QPainter &painter,double t);
void init();
QVector<QPoint> ctrlPoints;
QVector<QPoint> bezierNodes;
double t;
bool isSettingPoints; //正在设置控制点
bool isFirstDrawing; //首次绘制时动态显示
int indexChange; //当前正在操作的曲线的控制顶点
bool done;
void drawPoint(QPainter &painter,QPoint it, QColor T);
int idx;
bool Press;
};
#endif // CURVE_H