明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lzz0517

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

  [复制链接]
 楼主| 发表于 2012-6-4 20:04:17 | 显示全部楼层
这里还有一个问题,就是椭圆弧的长轴矢量,它又是怎么计算的呢?从CAD上看,都是用长轴的端点坐标与圆心的坐标进行相减求得,但是这个长轴端点怎么求呢?在块中的倾斜的椭圆上,不知道怎么求。在DXF文件中只提供了一个相对于圆心的长轴端点坐标,不知道这个端点坐标是在椭圆坐标系下还是平面坐标系的坐标,还是在块坐标系下的坐标?

我用求起点坐标的方法去求长轴端点坐标,然后与圆心相减得不到对应的长轴矢量;
把DXF文件中提供的相对于圆心的长轴端点坐标当成平面系下的坐标,同样算不出CAD上显示的长轴矢量;
发表于 2012-6-4 22:13:12 | 显示全部楼层
lzz0517 发表于 2012-6-4 20:04
这里还有一个问题,就是椭圆弧的长轴矢量,它又是怎么计算的呢?从CAD上看,都是用长轴的端点坐标与圆心的坐 ...

椭圆的长轴矢量,是在构建椭圆时候指定的。
所以我们可以从DXF码中求得。在lisp中,那就是  11 这个组码对应的这个量
在DXF中,就是11 21 31组码形成的矢量。
如果椭圆是在图块内的话,那么这个数值就是块内坐标。
如果椭圆是在模型空间中,那么这个数值就是世界坐标。
 楼主| 发表于 2012-6-5 08:35:57 | 显示全部楼层
在块内的椭圆或椭圆弧相对于圆心的长轴端点坐标,这个坐标属于块内坐标系,按理应该是直接加上圆心坐标,再用相对插入点进行旋转平移后得到平面坐标系下的坐标,然后与平面坐标系下的圆心进行相减得到长轴矢量,但是为什么得到的值与CAD上显示的不一样呢?
是不是也要乘以法线矢量的矩阵呢?
发表于 2012-6-5 09:18:01 | 显示全部楼层
本帖最后由 highflybird 于 2012-6-5 09:26 编辑

一个插入图块如果三维矢量不为(0 0 1)的话,也要乘以这个参数。
长轴矢量是个相对矢量,只是平移的话,不会改变这个数值。另外,图块的缩放(可能是非等比缩放),旋转会改变这个椭圆的长轴值(图块炸开后,椭圆的一些参数会改变)
发表于 2012-6-5 09:46:20 | 显示全部楼层
你问的问题太深了,再问下去,我估计回答不上来了。
 楼主| 发表于 2012-6-5 10:44:05 | 显示全部楼层
highflybird 发表于 2012-6-5 09:18
一个插入图块如果三维矢量不为(0 0 1)的话,也要乘以这个参数。
长轴矢量是个相对矢量,只是平移的话,不会 ...

这样说来,是不是说长轴矢量没办法计算出来了呢?按理说长轴端点坐标也是在椭圆弧上,根据我们上面讨论的方法步骤应该也能计算出来才对,不过我没计算出来,还有就是在DXF中记录的相对于圆心的长轴端点的坐标有些就跟CAD上显示的一样,有些就会相差一个负号,这个不知道是什么原因!
 楼主| 发表于 2012-6-5 10:48:53 | 显示全部楼层
highflybird 发表于 2012-6-5 09:46
你问的问题太深了,再问下去,我估计回答不上来了。

你一定可以的啊,要不然前面怎么会帮我找到计算坐标出现问题的地方!
发表于 2012-6-5 10:54:12 | 显示全部楼层
在C#中,也就是你的程序中,怎么样画一个椭圆?
就是说,画一个椭圆需要哪些参数?
 楼主| 发表于 2012-6-5 11:07:52 | 显示全部楼层
本帖最后由 lzz0517 于 2012-6-5 11:11 编辑

画椭圆弧和椭圆需要,圆心,起始角度,终止角度就可以了,如果是用类库的函数的话就需要圆心,半径,起始角度,终止角度;
但是在DXF文件中,块中包含的椭圆弧给出的起始角度和终止角度并不是CAD中显示的角度,所以画出来的图就会与CAD中显示的不一致!
因此才要进行坐标计算,再把角度计算出来!现在就差这个长轴矢量就能实现角度的计算了!
发表于 2012-6-5 11:11:39 | 显示全部楼层
本帖最后由 highflybird 于 2012-6-5 11:15 编辑

能否不要搞这么麻烦?把图块炸开后转DXF不就可以直接计算椭圆了吗?
求出椭圆块内长轴端点坐标,
然后再把椭圆的中心和这点坐标变换到世界坐标系,
在世界坐标系中这两点的矢量就是世界坐标下的端点跟圆心的矢量。这样做不行么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 15:00 , Processed in 0.162776 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表