凸度的计算

AutoCAD中凸度的概念以及求圆弧的凸度  

The bulge factor is used to indicate how much of an arc segment is present at this vertex. The bulge factor is the tangent of one fourth the included angle for an arc segment, made negative if the arc goes clockwise from the start point to the endpoint. A bulge of 0 indicates a straight segment, and a bulge of 1 is a semicircle.

凸度被用来表示一个顶点的弧度大小,它的值是这段弧所包含角度的1/4角度的正切。如果弧从起点到终点是顺时针走向则凸度为负数,0表示直线,1表示半圆。

AutoCAD中凸度的概念以及求圆弧的凸度 - 风华正茂 - 乐趣来自探索
 

在将圆弧转化为多段线(AcDbPolyLine)时,需要计算圆弧的凸度。在AutoCAD中规定,圆弧的走向始终是逆时针走向,所以终点角度应大小起点角度(以圆心为原点中,以X轴正方向为0,逆时针旋转为正角)。当终点角度小于起点角度时,应加上2π(下图中的图3和图4)这样得到的凸度值表示逆时针走向的凸度,当需要表示顺时针方面的弧度时,需要在这个值前面加负号。

下图中,图1,图2的绘制方向相反,但起点(小圆表示)到终点(小三角形表示)的走向是一样的。同理图3和图4也是一样但在计算凸度时终点角度小于起点角度,应加上2π。

AutoCAD中凸度的概念以及求圆弧的凸度 - 风华正茂 - 乐趣来自探索
 
AutoCAD中凸度的概念以及求圆弧的凸度 - 风华正茂 - 乐趣来自探索
 
AutoCAD中凸度的概念以及求圆弧的凸度 - 风华正茂 - 乐趣来自探索
 
AutoCAD中凸度的概念以及求圆弧的凸度 - 风华正茂 - 乐趣来自探索 


以下是其算法(注意得到的值是逆时针走向的凸度)

double GetBulge(AcDbArc*& pArc)

{

double dStartAngle = pArc->startAngle();

double dEndAngle = pArc->endAngle();

double dAlfa = dEndAngle - dStartAngle;

if (dAlfa < 0.0)//如果终点角度小于起点角度

{

dAlfa = 2 * PI + dAlfa;

}

double dBulge = 0.0;

dBulge = tan((dAlfa) / 4.0);

return dBulge;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值