明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5729|回复: 12

autocad椭圆弧夹点拖拽怎么实现的

  [复制链接]
发表于 2009-7-4 21:48 | 显示全部楼层 |阅读模式
AutoCAD椭圆弧有四个夹点,她的夹点拖拽算法实现的非常巧妙,不知道怎么实现的,我认为有四个未知量要解方程,但是不稳定,请问版上有人知道吗
发表于 2009-7-5 12:11 | 显示全部楼层
:),个人感觉四个夹点似乎控制的就是长短轴端点,拖曳的时候,似乎只需重新更新下长短轴数据,应该不用计算太多吧。
 楼主| 发表于 2009-7-5 12:54 | 显示全部楼层

四个夹点的意义

四个夹点的意义是:1.椭圆弧中心点,2.3.椭圆弧两端点,4.椭圆弧参数中点,但是它拖拽其中一个端点夹点的时候,中心点还是中心点,其余2点还是在椭圆弧上,这个最关键就是要求出长短轴矢量来就行,但不知道具体怎么求啊
发表于 2009-7-5 20:54 | 显示全部楼层
第4点是与椭圆两端点连线方向共扼的直径与椭圆弧的交点,也就是平行两端点连线与椭圆的切点。
 楼主| 发表于 2009-7-5 21:42 | 显示全部楼层

第四点不是这样求的

发表于 2009-7-6 11:04 | 显示全部楼层
你再点一个椭圆弧,看四个夹点的位置关系。
发表于 2009-7-6 13:10 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-7-6 14:16 | 显示全部楼层

那夹点拖拽是怎么实现的?

发表于 2009-7-6 14:27 | 显示全部楼层

经计算,拖动椭圆弧的非中心的三点中的任一点,椭圆中心位置不变,椭圆方程有三个未知数,刚好要经过三点,解是确定的,分析如下:
不影响一般性,可以假设变动前的椭圆弧中心为过坐标原点(简单的UCS坐标平移就可以达到),
设拖动点后椭圆的长轴(X'轴)与UCS的X轴成α角,将UCS'坐标建立在椭圆上,其方程为
X'^2/a^2+Y'^2/b^2=1...............(1)
UCS'与UCS坐标关系为
X'=Xcosα+Ysinα....................(2)
Y'=Ycosα-Xsinα....................(3)
(2)、(3)两式代入(1)可得在UCS坐标下新椭圆的方程式
(X^2*(cosα)^2+Y^2*(sinα)^2+2XY*sinαcosα)/(a^2)+(X^2*(sinα)^2+Y^2*(cosα)^2-2XY*sinαcosα)/(b^2)=1........(4)
其中a、b、α三个变量为未知数,那么将要经过的三个点的坐标代入后可得三个等式的方程组,解是确定的。

评分

参与人数 1威望 +1 明经币 +1 金钱 +60 贡献 +30 激情 +30 收起 理由
highflybir + 1 + 1 + 60 + 30 + 30 【好评】好思路 分析透彻,好!

查看全部评分

 楼主| 发表于 2009-7-6 15:37 | 显示全部楼层

呵呵,谢谢了!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 07:26 , Processed in 0.264466 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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