凸度的计算

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表示半圆。

 

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

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

 
 
 
 


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

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;

}

你可能感兴趣的:(CAD)