BIMHome v1.0.0
BIMHome接口文档说明
Hyperbola.h
浏览该文件的文档.
1/************************************************************************
2* @file Hyperbola.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_GEOMETRYHYPERBOLA_H
19#define BIMHOMEBASE_GEOMETRYHYPERBOLA_H
20
21#include "Base/Math/Geometry/Curve.h"
22#include "Base/Axis2.h"
23namespace Base
24{
25 class Axis2;
26 class Line;
27 //双曲线
28 class BaseExport Hyperbola :public Curve
29 {
30 public:
32
39 Hyperbola(const double MajorRadius, const double MinorRadius);
40
48 Hyperbola(const Base::Axis2 Axis, const double MajorRadius, const double MinorRadius);
49
56
62
68 void setMajorRadius(const double MajorRadius);
69
75 double getMajorRadius()const;
76
82 void setMinorRadius(const double MinorRadius);
83
89 double getMinorRadius() const;
90
91 //返回双曲线的两个渐近线
94 //返回共轭双曲线分支
97 //返回双曲线的两个准线
100 //返回离心率
101 double getEccentricity() const;
102 //返回焦距
103 double getFocal() const;
104 // 返回两个焦点
107
108 virtual Geometry* copy(void) const;
109 double getLength()const;
110 bool isClosed();
111
112 void Reverse();
113
114 private:
115 Base::Axis2 mAxis; //坐标系
116 double mMajorRadius;//实轴长度
117 double mMinorRadius;//虚轴长度
118
119 };
120}
121
122#endif
@ Line
Definition CurveTypeDefine.h:36
Axis2 类,用于表示三维空间中的二维坐标系
Definition Axis2.h:33
Axis 类,用于表示三维空间中的轴
Definition Axis.h:31
Definition Curve.h:27
Definition Geometry.h:81
double mMajorRadius
Definition Hyperbola.h:116
Base::Line * getConjugateBranch1() const
Base::Vector3d getFocus1() const
Base::Axis2 getAxis() const
获取坐标系
Base::Line * getDirectrix1() const
double getMajorRadius() const
获取实轴长度
Base::Axis2 mAxis
Definition Hyperbola.h:115
virtual Geometry * copy(void) const
double mMinorRadius
Definition Hyperbola.h:117
Base::Line * getDirectrix2() const
Base::Line * getConjugateBranch2() const
double getMinorRadius() const
获取虚轴长度
Base::Line * getAsymptote1() const
Hyperbola(const Base::Axis2 Axis, const double MajorRadius, const double MinorRadius)
构建三维双曲线
double getEccentricity() const
Hyperbola(const double MajorRadius, const double MinorRadius)
构建三维双曲线
Base::Vector3d getFocus2() const
void setAxis(const Base::Axis2 Axis)
设置坐标系
void setMajorRadius(const double MajorRadius)
设置实轴长度
void setMinorRadius(const double MinorRadius)
设置虚轴长度
double getFocal() const
double getLength() const
Base::Line * getAsymptote2() const
Definition Hyperbola.h:29
Definition Line.h:28
Definition BaseFigureFactory.h:24