- UID
- 82688
- 积分
- 380
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-9-27
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2003-10-20 09:36:17
|
显示全部楼层
[ARX函数]:ARX讲座7-AcDbEllipse类
AcDbEllipse类
此类表示AutoCAD中的椭圆实体。它包含了创建、修改了获取椭圆属性的方法。
继承自
AcDbCurve
包含文件
dbelipse.h
参见
AcDbEntity, AcGePoint3d, AcGeVector3d
成员
AcDbEllipse建构器和析构器
AcDbEllipse::~AcDbEllipse 函数
virtual
~AcDbEllipse();
析构器。
AcDbEllipse::AcDbEllipse 函数
AcDbEllipse(
const AcGePoint3d& center,
const AcGeVector3d& unitNormal,
const AcGeVector3d& majorAxis,
double radiusRatio,
double startAngle = 0.0,
double endAngle = 6.28318530717958647692);
center
输入椭圆的中点
unitNormal
输入指定法向矢量的矢量。这确定了椭圆的平面。
majorAxis
输入表示椭圆1/2主轴的矢量
radiusRatio
输入长轴对短轴的比
startAngle
输入椭圆的起始角(弧度)
endAngle
输入椭圆的终止角(弧度)
这个建构器使用传递的值创建一个椭圆。center、unitNormal和majorAxis用于计算起始点。majorAxis矢量表示椭圆的主轴的一半(即,从中点至椭圆的起始点),而且还是startAngle和endAngle的零度角。如果视线从法向矢量向下,则正角度为逆时针(即,右手定则)。startAngle为0且endAngle为2pi将生成一个封闭的椭圆。
radiusRatio必须在1E-6至1.0范围内。
unitNormal与自身的点积及majorAxis与自身的点积必须大于1E-12。
majorAxis必须垂直于1E-6以内法向矢量 must perpendicular to normal within.
startAngle与endAngle差必须大于1E-6。
如果任何对参数的要求不能满足,则椭圆的gelib对象不会创建且此建构器将与默认的建构器一样工作(即,传递的值将不被使用且椭圆的数据查询方法将返回无效值)。
AcDbEllipse::isNull()方法可用于确定此建构器是否成功地使用传递的值初始化椭圆。如果isNull()返回Adesk::kFalse,则初始化成功。
AcDbEllipse();
此类的默认建构器。初始化XY平面上的圆的半径为1,圆心为(0,0,0)。
AcDbEllipse编辑函数
AcDbEllipse::set 函数
Acad::ErrorStatus
set(
const AcGePoint3d& center,
const AcGeVector3d& unitNormal,
const AcGeVector3d& majorAxis,
double radiusRatio,
double startAngle = 0.0,
double endAngle = 6.28318530717958647692);
center
输入椭圆的中点(WCS坐标中)
unitNormal
输入法向矢量(WCS坐标中),其定义了椭圆所在的平面
majorAxis
输入椭圆的长轴(WCS坐标中)
radiusRatio
输入需要的长轴与短轴之比
startAngle
输入椭圆的起始角(弧度)
endAngle
输入椭圆的终止角(弧度)
此函数使用参数中的指定值设置椭圆的属性。
center、unitNormal和majorAxis用于计算起始点。majorAxis矢量表示椭圆的主轴的一半(即,从中点至椭圆的起始点),而且还是startAngle和endAngle的零度角。如果视线从法向矢量向下,则正角度为逆时针(即,右手定则)。startAngle为0且endAngle为2pi将生成一个封闭的椭圆。
radiusRatio必须在1E-6至1.0范围内。
unitNormal与自身的点积及majorAxis与自身的点积必须大于1E-12。
majorAxis必须垂直于1E-6以内法向矢量 must perpendicular to normal within.
startAngle与endAngle差必须大于1E-6。
如果成功返回Acad::eOk。
如果有任何参数不能满足,则此方法失败且返回Acad::eGeneralModelingFailure。
AcDbEllipse::setCenter 函数
Acad::ErrorStatus
setCenter(
const AcGePoint3d& center);
center
输入椭圆的新的中点
设置center(WCS坐标中)为椭圆的中点。
如果成功返回Acad::eOk。否则返回Acad::eGeneralModelingFailure。
AcDbEllipse::setEndAngle 函数
Acad::ErrorStatus
setEndAngle(
double endAngle);
endAngle
输入椭圆的新的终止角度(弧度)
设置endAngle为椭圆的终止角度。
如果成功返回Acad::eOk。
如果椭圆没有任何gelib对象(即,AcDbEllipse::isNull()返回Adesk::kTrue),则返回Acad::eDegenerateGeometry。
AcDbEllipse::setEndParam 函数
Acad::ErrorStatus
setEndParam(
double endParam);
endParam
输入椭圆新的终止参数
设置endParam为椭圆的新的终止参数。如果endParam小于当前的开始参数,则以2pi为步距增加直至大于当前的开始参数。
如果成功返回Acad::eOk。
如果椭圆没有任何gelib对象(即,AcDbEllipse::isNull()返回Adesk::kTrue),则返回Acad::eDegenerateGeometry。
AcDbEllipse::setRadiusRatio 函数
Acad::ErrorStatus
setRadiusRatio(
double ratio);
ratio
输入椭圆长径与短径比
设置ratio为椭圆的新的长短径比。Ratio必须在1e-6和1.0之间。
如果成功返回Acad::eOk。
如果椭圆没有任何gelib对象(即,AcDbEllipse::isNull()返回Adesk::kTrue),则返回Acad::eDegenerateGeometry。
AcDbEllipse::setStartAngle 函数
Acad::ErrorStatus
setStartAngle(
double startAngle);
startAngle
输入椭圆的新的开始角度(弧度)
设置startAngle为椭圆的新的开始角度。
如果成功返回Acad::eOk。
如果椭圆没有任何gelib对象(即,AcDbEllipse::isNull()返回Adesk::kTrue),则返回Acad::eDegenerateGeometry。
AcDbEllipse::setStartParam 函数
Acad::ErrorStatus
setStartParam(
double startParam);
startParam
输入椭圆的新的开始参数
设置startParam为椭圆的新的始参数。如果startParam大于当前终止参数,则以2pi为步距减小直至小于当前的终止参数。
如果成功返回Acad::eOk,否则返回Acad::eGeneralModelingFailure。
AcDbEllipse杂项函数
AcDbEllipse::getClassID 函数
virtual Acad::ErrorStatus
getClassID(
CLSID* pClsid) const;
pClsid
Description to com
AcDbEllipse::getGripPoints 函数
virtual DBCURVE_METHODS Acad::ErrorStatus
getGripPoints(
AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapMasks,
AcDbIntArray& geomIds) const;
Description to come。
AcDbEllipse::getTransformedCopy 函数
virtual Acad::ErrorStatus
getTransformedCopy(
const AcGeMatrix3d& xform,
AcDbEntity*& ent) const;
Description to come。
AcDbEllipse::intersectWith 函数
virtual Acad::ErrorStatus
intersectWith(
const AcDbEntity* ent,
AcDb::Intersect intType,
const AcGePlane& projPlane,
AcGePoint3dArray& points,
int thisGsMarker = 0,
int otherGsMarker = 0) const;
virtual Acad::ErrorStatus
intersectWith(
const AcDbEntity* ent,
AcDb::Intersect intType,
AcGePoint3dArray& points,
int thisGsMarker = 0,
int otherGsMarker = 0) const;
Description to come。
AcDbEllipse::moveGripPointsAt 函数
virtual Acad::ErrorStatus
moveGripPointsAt(
const AcDbIntArray& indices,
const AcGeVector3d& offset);
Description to come。
AcDbEllipse查询函数
AcDbEllipse::angleAtParam 函数
double
angleAtParam(
double param) const;
param
输入要求值的参数
此函数返回椭圆上param位置上的角度的第一象限值。返回的角度将在-pi到pi范围内。
椭圆的majorAxis矢量为零角度。如果视线从椭圆的法向矢量向下,则正角度为逆时针方向(即,右手定则)。
AcDbEllipse::center 函数
AcGePoint3d
center() const;
返回椭圆的中点(WCS坐标中)
AcDbEllipse::endAngle 函数
double
endAngle() const;
返回椭圆的终止角(弧度)的第一象限值。返回角的范围在-pi到pi之间。
椭圆的majorAxis矢量为零角度。如果视线从椭圆的法向矢量向下,则正角度为逆时针方向(即,右手定则)。
AcDbEllipse::get 函数
Acad::ErrorStatus
get(
AcGePoint3d& center,
AcGeVector3d& unitNormal,
AcGeVector3d& majorAxis,
double& radiusRatio,
double& startAngle,
double& endAngle) const;
center
返回椭圆的中点(WCS坐标中)
unitNormal
返回包含椭圆的平面的单位法向矢量(WCS坐标中)
majorAxis
返回椭圆的长轴矢量(WCS坐标中)
radiusRatio
返回椭圆的长半径与短半径比
startAngle
返回椭圆的开始角(在-pi到pi之间)(弧度)
endAngle
返回椭圆的开始角(在-pi到pi之间)(弧度)
此函数在指定的参数中返回椭圆的参数。
Center、unitNormal和majorAxis在WCS坐标中。startAngle和endAngle为弧度,范围在-pi到pi之间。
majorAxis是从中点至椭圆开始点的矢量是startAngle和endAngle的零角度值。如果沿法向矢量向下,则正角度为逆时针方向(即,右手定则)。封闭的椭圆的startAngle为0且endAngle为2pi。
如果成功返回Acad::eOk。
如果椭圆没有任何gelib对象(即,AcDbEllipse::isNull()返回Adesk::kTrue),则返回Acad::eDegenerateGeometry。
AcDbEllipse::isNull 函数
Adesk::Boolean
isNull() const;
如果此椭圆自身没有gelib对象,则返回Adesk::kTrue。
AcDbEllipse::majorAxis 函数
AcGeVector3d
majorAxis() const;
返回椭圆的长轴矢量(WCS坐标中)。
长轴矢量是从椭圆的中点至它的开始点的矢量。主轴矢量的大小表示长轴的1/2长度。
AcDbEllipse::minorAxis 函数
AcGeVector3d
minorAxis() const;
返回椭圆的短轴矢量(WCS坐标中)。
短轴矢量与长轴矢量垂直。它的大小表示短轴的1/2长度。
AcDbEllipse::normal 函数
AcGeVector3d
normal() const;
返回椭圆的单位法向矢量(WCS坐标中)。
法向矢量指定包含椭圆的平面。
AcDbEllipse::paramAtAngle 函数
double
paramAtAngle(
double angle) const;
angle
输入所需要参数上的角度(弧度)
返回angle上的一阶参数值。参数值在0至2pi范围内。
椭圆的majorAxis矢量为angle的零角度。如果沿法向矢量向下,则正角度为逆时针方向(即,右手定则)。
AcDbEllipse::radiusRatio 函数
double
radiusRatio() const;
返回椭圆的长半径与短半径之比。返回的值在1e-6至1.0范围内。
AcDbEllipse::startAngle 函数
double
startAngle() const;
返回椭圆的开始角(弧度)的第一象限值。返回的角度在-pi至pi范围内。
椭圆的majorAxis矢量为startAngle和endAngle的零角度。如果沿法向矢量向下,则正角度为逆时针方向(即,右手定则)。 |
|