明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lzz0517

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

  [复制链接]
发表于 2012-5-31 17:15:11 | 显示全部楼层
椭圆弧如果仅仅是旋转了,不会改变其角度的,不管是列表显示,还是DXF数值。
 楼主| 发表于 2012-6-1 08:35:42 | 显示全部楼层
本帖最后由 lzz0517 于 2012-6-1 08:37 编辑
highflybird 发表于 2012-5-31 17:15
椭圆弧如果仅仅是旋转了,不会改变其角度的,不管是列表显示,还是DXF数值。

我已经找到计算角度的方法了,只是现在要计算块中包含图形的坐标,这个问题,我用了两种方法进行求解都得不到正确的答案,第一种通过旋转平移求椭圆弧的起始和终止坐标,第二种通过直线与椭圆弧曲线相交求起始和终止坐标,这两种方法的解是相同的,都得不到CAD中显示的坐标值!
所以,我想问下你能不能告诉我怎么求解块中包含的倾斜椭圆弧的起始和终止坐标的方法!
发表于 2012-6-1 09:09:51 | 显示全部楼层
贴个图片吧,把你要求的点的坐标,图元和过程讲清楚
 楼主| 发表于 2012-6-1 09:39:10 | 显示全部楼层
本帖最后由 lzz0517 于 2012-6-1 09:49 编辑

这个图整个块的全景,这个图是求解的椭圆弧的起始和终止点坐标,Drawing9.rar是DXF源文件,
现在就是说通过DXF文件中提供的信息,比如插入点的数据,相关椭圆弧的数据,求解相应的坐标,这个坐标要与CAD中拆解块后显示的一样

要求的椭圆弧的数据:圆心(3217176.690239313,532617.0907392278),相对于圆心的长轴端点坐标(45.66621877367426,337.0426302735758),长短半径比例(0.9999999999977266),记录的起始弧度(2.35439212168697),终止弧度(3.641394339275362)。
块的插入点数据:坐标(-399474.1637001187,3238438.33505016),缩放比例X=-1.0,Y=1,旋转角度=106.4911716322804。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-6-1 10:35:42 | 显示全部楼层
本帖最后由 highflybird 于 2012-6-1 10:38 编辑


上面的lisp程序供你参考。

已知了某个插入块,就能得到其变换矩阵,然后对某个点进行矩阵变换就可以了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-6-1 15:29:11 | 显示全部楼层
highflybird 发表于 2012-6-1 10:35
上面的lisp程序供你参考。

已知了某个插入块,就能得到其变换矩阵,然后对某个点进行矩阵变换就可以了 ...

之前没学过有关lisp程序的知识,所以现在一边看lisp入门一边看你的这个程序好难懂,能不能提供一个纯数学公式或者用C/C#/C++写的函数也行!
发表于 2012-6-1 16:12:30 | 显示全部楼层
假设一个块内的坐标点是: x ,y ,z ,且一般不考虑法线矢量。
插入块的缩放比例是u, v ,w
块的旋转角度是  a
块的插入点坐标是 x0,y0,z0
那么这个点在世界坐标是是:
u*cos(a)*x - v*sin(a)*y + X0,
u*sin(a)*x +v*cos(a)*y +Y0,
w*Z0
发表于 2012-6-1 16:15:00 | 显示全部楼层
lzz0517 发表于 2012-6-1 15:29
之前没学过有关lisp程序的知识,所以现在一边看lisp入门一边看你的这个程序好难懂,能不能提供一个纯数学 ...

经过验证,符合你说的坐标:
'CAL >> Expression:
-1*cos(106.49117163)*3217725.0267-1*sin(106.49117163)*532343.1616+(-399474.16370
012)=3489.30538
-1*sin(106.49117163)*3217725.0267+1*cos(106.49117163)*532343.1616+3238438.335050
16=1964.32284
 楼主| 发表于 2012-6-1 16:25:33 | 显示全部楼层
本帖最后由 lzz0517 于 2012-6-1 16:26 编辑
highflybird 发表于 2012-6-1 16:15
经过验证,符合你说的坐标:
'CAL >> Expression:
-1*cos(106.49117163)*3217725.0267-1*sin(106.49117 ...

谢谢回答,请问一下你这个坐标求的是椭圆弧的圆心坐标吗?
还是别的坐标?
如果是圆心的坐标的话,跟在CAD上显示的是不一样的!
发表于 2012-6-1 16:27:09 | 显示全部楼层
我这里求的是椭圆弧形的端点
你可以把 x,y,z换成块内的其他坐标也行,譬如圆心。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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