明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lzz0517

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

  [复制链接]
发表于 2012-6-6 15:16:19 | 显示全部楼层
lzz0517 发表于 2012-6-6 14:58
你看看我步骤有没有错,我用了你说的计算椭圆长轴矢量的方法进行计算,但与CAD上进行比较后,对不上CAD上的 ...

我已经提示:
炸开后椭圆的参数已经发生了变化。
所以不能以炸开后的图形作为参照。
 楼主| 发表于 2012-6-6 15:32:41 | 显示全部楼层
highflybird 发表于 2012-6-6 15:16
我已经提示:
炸开后椭圆的参数已经发生了变化。
所以不能以炸开后的图形作为参照。

如果椭圆参数发生了变化,这个能详细点吗?
因为如果以我们计算的长轴矢量进行起始角度的计算和终止角度的计算的话,画出来的图形会出现位置上的不对,椭圆弧上所有的点都是通过角度进行计算的!
 楼主| 发表于 2012-6-6 15:47:46 | 显示全部楼层

这个图是我用那个方法计算出来的矢量,起点矢量,端点矢量分别计算出起始角度,终止角度后绘画出来的结果。

本帖子中包含更多资源

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

x
发表于 2012-6-6 15:53:56 | 显示全部楼层
你可以先求出椭圆在图块内的各点坐标(从你的程序中看出分了64等分,那就是65个点),然后映射到世界坐标系中。
 楼主| 发表于 2012-6-6 16:15:02 | 显示全部楼层
本帖最后由 lzz0517 于 2012-6-6 16:16 编辑



这是根据你说的方法进行求解的结果,先读取DXF文件中椭圆弧的参数进行坐标的计算,然后再进行块矩阵的转换计算出世界坐标系下的坐标,如图所示
所以,我觉得还是应该考虑怎么才能求出炸开后椭圆弧在CAD上显示的长轴矢量坐标

本帖子中包含更多资源

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

x
发表于 2012-6-6 16:19:29 | 显示全部楼层
本帖最后由 highflybird 于 2012-6-6 16:21 编辑
lzz0517 发表于 2012-6-6 16:15
这是根据你说的方法进行求解的结果,先读取DXF文件中椭圆弧的参数进行坐标的计算,然后再进行块矩阵的转 ...

你没用我83楼讲的方法。
另外我在CAD用那个变换方法能正确创建椭圆弧。
 楼主| 发表于 2012-6-6 16:25:57 | 显示全部楼层
本帖最后由 lzz0517 于 2012-6-6 16:27 编辑

用了啊, 我是这样子做的,
for (int i = 0; i < 65;i++ )
            {
                double ang = sa + i * (ea - sa) / 64; // sa为DXF中的起始弧度,ea为DXF中的终止弧度,
           //ra为椭圆弧的倾斜弧度,R为长半径,r为短半径,Insert.Point1为插入点坐标,Insert.cos 为插入点角度余弦值,Insert.sin 为插入点角度正弦值,Scale(x,y,z)为缩放比例,center为DXF中的圆心
                double x = R * Math.Cos(ang) * Math.Cos(ra) - r * Math.Sin(ang) * Math.Sin(ra)+center.X;
                double y = r * Math.Sin(ang) * Math.Cos(ra) + R * Math.Cos(ang) * Math.Sin(ra)+center.Y;
                double xx = Insert.Point1.X + x * Insert.cos * Scale.X - y * Insert.sin * Scale.Y;
                double yy = Insert.Point1.Y + y * Insert.cos * Scale.Y + x * Insert.sin * Scale.X;
                points.X = (float)xx;
                points.Y = (float)yy;
                points.Z = center.Z;
            }
 楼主| 发表于 2012-6-6 16:32:09 | 显示全部楼层
我错了,我忘了乘以这个矩阵了
1 0  0
0 -1 0
0 0  -1
 楼主| 发表于 2012-6-6 16:38:44 | 显示全部楼层
那个块中包含块,块中又包含其他图形,线,圆,椭圆等图形的时候,又要怎么样计算他们的坐标呢?
发表于 2012-6-6 16:41:23 | 显示全部楼层
lzz0517 发表于 2012-6-6 16:38
那个块中包含块,块中又包含其他图形,线,圆,椭圆等图形的时候,又要怎么样计算他们的坐标呢?

块中块,就要一层层变换,从最内部开始,乘以块中插入块的变换矩阵,一直乘以到最外层的插入块矩阵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-4 08:44 , Processed in 0.170094 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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