lzz0517 发表于 2012-5-28 16:58:47

椭圆弧旋转后计算角度问题

椭圆弧的长轴在X轴上,短轴在Y轴上,如何计算它的起始角度和终止角度,

椭圆弧进行旋转一个角度后,又如何计算起始和终止角度了,

不知道有没有人知道怎么计算?

qjchen 发表于 2012-5-28 19:58:18

楼主可稍说明白些,或者用图表达一下

是需在ACAD中查询,还只是一个几何算法

lzz0517 发表于 2012-5-29 09:58:10

是这样的,椭圆不是有一个起始参数和一个终止参数吗?同理椭圆弧也有,那么椭圆弧的起始点和终止点的角度是怎么计算的?需要一个几何算法,这个算法计算出来的角度要能与CAD中记录的结果一样才行!

椭圆弧上的最上面的点是端点坐标,最下面的点的坐标是起始坐标,左边的是圆心,根据这些数据怎么计算起始角度和端点角度呢?

highflybird 发表于 2012-5-29 18:08:10



列表和属性栏中显示的角度是长轴跟端点与中心的连线的夹角,
而DXF码的角度是如上图的角度。他们是不同的。

lzz0517 发表于 2012-5-30 09:19:44

本帖最后由 lzz0517 于 2012-5-30 09:21 编辑

可是,我用DXF中的组码41、42记录的值进行计算,也就是把它记录的弧度转换为角度,这个角度与列表中显示的是一样的,只是列表中显示的角度范围在0到360之间,DXF码中记录的范围在负任意数到正任意数之间,比如说,列表中显示的是起点角度为294,终点角度8,那么DXF码中记录的值换算为角度后是起点角度为294,终点角度为368。
我一直在计算附件中的角度和坐标值,但是就是计算不对,因为附件中的图形是块中包含椭圆弧,而在CAD中显示的信息仅仅是插入点的信息,块的插入点也有一个旋转角度,没有关于椭圆弧的信息,于是我在DXF中查找关于椭圆弧的信息,椭圆弧有圆心(相对于插入点的),半径比例,起始弧度,终止弧度,相对于圆心的长轴端点坐标,根据这些信息我想计算出拆解块后椭圆弧在CAD上显示的数据信息,我按坐标旋转平移的方法进行计算起点和终点坐标,但是很奇怪总是计算不对(圆心坐标的计算是正确的),因此相应的角度的计算也不正确。求解!

附件中是我想计算椭圆弧有关的DXF文件。

highflybird 发表于 2012-5-30 09:52:50

你把那个图块炸开看看,是不是我说的那样。
如果椭圆的长短比为1的话,很多情况下DXF码跟列表是一致的,不过DXF的终点角度总是大于起点角度,这个与列表显示的情况有区别。
另外,如果一个椭圆在图块中,还要进行图块的矩阵变换(包括比例,角度,插入点,三维拉伸矢量)。

lzz0517 发表于 2012-5-30 10:18:25

本帖最后由 lzz0517 于 2012-5-30 10:21 编辑

你说的图块的矩阵变换(包括比例,角度,插入点,三维拉伸矢量),这个有没有什么公式之类的?
因为我现在用的就是旋转平移进行计算!
椭圆弧的长、短半径不一样的时候,确实如你所说!

highflybird 发表于 2012-5-30 10:22:36

http://www.theswamp.org/index.php?topic=13526.0

lzz0517 发表于 2012-5-30 11:29:46

有个奇怪的问题,我用这个公式,X=U*COS@-V*SIN@+X0;Y=VCOS@+USIN@+Y0;算出椭圆弧的起点和终点坐标,其中@为DXF文件中记录的起始参数和终止参数,X0,Y0为DXF文件中记录的圆心,U=R*COS@,V=r*SIN@(@为椭圆弧的倾斜角度),接着用下面的公式计算相对于插入点的椭圆弧的起点和终点坐标,NX=I.X+X*COS(I.ANGLE)*SCALEX-Y*SIN(I.ANGLE)*SCALEY;
NY=I.Y+Y*COS(I.ANGLE)*SCALEY+X*SIN(I.ANGLE)*SCALEX; 其中I.X,I.Y为DXF文件中记录的插入点的坐标,I.ANGLE为插入点的旋转角度,SCALEX,SCALEY为缩放值,X,Y为上面计算的结果;根据这两个公式我可以计算出上面提到的附件中部分椭圆弧的起点和终点坐标,只是和CAD中显示的起点和终点坐标调换位置了,还有部分是计算不正确的!

lzz0517 发表于 2012-5-31 13:49:42

highflybird 发表于 2012-5-30 10:22 static/image/common/back.gif
http://www.theswamp.org/index.php?topic=13526.0

我看了下这个网页,基本没看懂,不知道有没有更好的参考资料呢?很感谢你的回答!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 椭圆弧旋转后计算角度问题