https://bbs.youkuaiyun.com/topics/390265014
Q:
DXF椭圆弧角度问题
在CAD中画了一带旋转的椭圆弧,导出dxf文件后两个参数的弧度值和在CAD属性中看到的角度值不同?(不过当为90°的倍数时它是相同的)他们之间什么关系?跟旋转角度有关吗?
如:dxf中:
41
0.0
42
4.037648038161137
CAD中:
Start Angle: 0
End Angle: 225
225*PI/180.0约等于3.92699,与DXF中不一样
CAD是否做了什么转换?
A:
问题解决,虽然网上也有些说明,但都不明确,故在此写下解决的代码,以便来着
//从dxf中读到的椭圆弧参数
double dStartAngle, dEndAngle;//开始角,结束角
double dCenterX, dCenterY;//圆心坐标
double dMainAxisX, dMainAxisY;//长轴端点坐标
double dRatio;//长短轴比例
//计算长轴a,短轴b
double a = sqrt((dMainAxisX-dCenterX)*(dMainAxisX-dCenterX)+(dMainAxisY-dCenterY)*(dMainAxisX-dCenterY));
double b = a * dRatio;
//计算端点坐标
double dStartX = dCenterX + a * cos(dStartAngle);
double dStartY = dCenterY + b * cos(dStartAngle);
//计算角度
double dSAngle, dEAngle;
double sx = dStartX - dCenterX;
double sy = dStartY - dCenterY;
if(fabs(sx) < 1e-6)
dSAngle = atan2(sy, sx);
else
dSAngle = atan(sy/sx);
//同样可以计算出dEAngle
dSAngle, dEAngle就是CAD中显示的角度
1万+

被折叠的 条评论
为什么被折叠?



