BIMHome v1.0.0
BIMHome接口文档说明
ArcofEllipse2D.h
浏览该文件的文档.
1/************************************************************************
2* @file ArcofEllipse2D.h
3*
4* @brief 二维椭圆弧
5*
6* @details 二维椭圆弧
7*
8* @author lirf
9*
10* @version 1.0
11*
12* @date 2025-6-7
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEBASE_ARCOFELLIPSE2D_H
19#define BIMHOMEBASE_ARCOFELLIPSE2D_H
20
21#include "Base/Math/Geometry/Curve2D.h"
22
23namespace Base
24{
25 //椭圆弧
26 class BaseExport ArcofEllipse2D :public Curve2D
27 {
28 public:
30
41 ArcofEllipse2D(Base::Vector2d centerPoint, Base::Vector2d majorAxisDir, double majorRadius, double minorRadius, double startAngle, double EndAngle, bool clockWise);
42 virtual Geometry2D* copy(void) const;
43
45
51
57 void setCenterPoint(const Base::Vector2d& centerPoint);
58
64
70 void setMajorAxisDir(const Base::Vector2d& majorAxisDir);
71
76 double getMajorRadius() const;
77
83 void setMajorRadius(double majorRadius);
84
89 double getMinorRadius() const;
90
96 void setMinorRadius(double minorRadius);
97
98 double getStartAngle() const;
99 void setStartAngle(double startAngle);
100
101 double getEndAngle() const;
102 void setEndAngle(double EndAngle);
103
104 bool isClockWise() const;
105
108
109 bool isClosed();
110 double getLength();
111 private:
113 Base::Vector2d mMajorAxisDir;//主轴的方向,即基准轴
114 double mMajorRadius;//主轴半径
115 double mMinorRadius;//副轴半径
116 double mStartAngle;//起始角度 弧度制
117 double mEndAngle;//终止角度 弧度制
118 bool mClockWise;//true顺时针,false逆时针
121 };
122}
123
124#endif
Base::Vector2d getEndPoint() const
double mMajorRadius
Definition ArcofEllipse2D.h:114
bool isClockWise() const
void setMinorRadius(double minorRadius)
设置副轴半径
Base::Vector2d mStartPoint
Definition ArcofEllipse2D.h:119
double getMajorRadius() const
获取主轴半径
Base::Vector2d mCenterPoint
Definition ArcofEllipse2D.h:112
ArcofEllipse2D(Base::Vector2d centerPoint, Base::Vector2d majorAxisDir, double majorRadius, double minorRadius, double startAngle, double EndAngle, bool clockWise)
构造一个椭圆弧
Base::Vector2d getMajorAxisDir() const
获取基准轴
double mStartAngle
Definition ArcofEllipse2D.h:116
void setMajorRadius(double majorRadius)
设置主轴半径
void setStartAngle(double startAngle)
Base::Vector2d mMajorAxisDir
Definition ArcofEllipse2D.h:113
double mMinorRadius
Definition ArcofEllipse2D.h:115
Base::Vector2d getCenterPoint() const
获取中心点
void setEndAngle(double EndAngle)
void setMajorAxisDir(const Base::Vector2d &majorAxisDir)
设置基准轴
double getMinorRadius() const
获取副轴半径
Base::Vector2d getStartPoint() const
bool mClockWise
Definition ArcofEllipse2D.h:118
virtual Geometry2D * copy(void) const
Base::Vector2d mEndPoint
Definition ArcofEllipse2D.h:120
double mEndAngle
Definition ArcofEllipse2D.h:117
double getEndAngle() const
double getStartAngle() const
void setCenterPoint(const Base::Vector2d &centerPoint)
设置中心点
Definition ArcofEllipse2D.h:27
Definition Curve2D.h:28
Definition Geometry2D.h:72
Vector2d 类,表示二维空间中的向量
Definition Vector2D.h:58
Definition BaseFigureFactory.h:24