2021-06-10

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中显示的角度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值