明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 471|回复: 23

[越飞越高] 圆锥曲线在AutoCAD的精确表达法

[复制链接]
发表于 2020-9-13 00:10 | 显示全部楼层 |阅读模式
圆锥曲线有三类:椭圆、抛物线和双曲线。
椭圆在AutoCAD的画法为众人熟知,我现在说说剩下的两类。
1、抛物线。
如果熟悉三维建模的,可以创建一个三维的圆锥体,然后用section命令得到圆锥曲线的轮廓。
炸开这个轮廓,可以得到一个精确的圆锥曲线,这个方法有点费时,不好操作。
现在通过举例讲解抛物线的画法。
画: y=a*x^2 ,区间段为(-1,1)。
输入命令:spline回车

当前设置: 方式=拟合   节点=弦
指定第一个点或 [方式(M)/节点(K)/对象(O)]: m         <-----在这里输入m
输入样条曲线创建方式 [拟合(F)/控制点(CV)] <拟合>: cv   <-----在这里输入CV
当前设置: 方式=控制点   阶数=3
指定第一个点或 [方式(M)/阶数(D)/对象(O)]: d        <-----在这里输入d
输入样条曲线阶数 <3>:                   <-----在这里输入2,形成2阶的样条曲线。                    
(上面的这些设置输入一次址后,CAD下次可以不用输入了)

当前设置: 方式=控制点   阶数=2
指定第一个点或 [方式(M)/阶数(D)/对象(O)]:
输入下一个点:                                 <-----捕捉第一点坐标为(-1,a)。
输入下一个点或 [放弃(U)]:               <-----捕捉第二点坐标为(0,-a)。
输入下一个点或 [闭合(C)/放弃(U)]:  <-----捕捉第三点坐标为(1,a)。

回车。
这样就得到了一条抛物线,这是一条精确的抛物线,不是拟合出来的,读者可以自行验证。
其它形式的方程,均可由此平移和旋转变换得到。如果大家有兴趣,不妨参考相关知识。
譬如下面的链接:
https://zhuanlan.zhihu.com/p/91649187

2、双曲线。
双曲线与抛物线的画法类似,也是要设置为二阶样条曲线,方式为控制点的模式。
举例:画双曲线x^2-y^2=1,区间为(-2,2)
先画半边。
输入spline, 像抛物线那样设置,如果已经设置好了,回车即可。
要依次输入这三点,这三点坐标是A(2,sqrt(3)), C(0.5,0),B(2,-sqrt(3))
输入后,回车。
下面的步骤可能在属性里面操作容易写。
选取刚才形成的样条曲线,ctrl+1打开属性面板,在属性的当前控制点设置为2,即C点。
把权值-1修改为2,那么,这样就形成了右半边,镜像一下,得到左半边。
所需双曲线绘制完成。
上面的属性修改也可以用splinedit命令来完成
选择开始默认形成的样条曲线,输入splinedit或者双击。
命令: _splinedit
输入选项 [闭合(C)/合并(J)/拟合数据(F)/编辑顶点(E)/转换为多段线(P)/反转(R)/放弃(U)/退出(X)] <退出>: e
输入顶点编辑选项 [添加(A)/删除(D)/提高阶数(E)/移动(M)/权值(W)/退出(X)] <退出>: w
输入新权值 (当前值 = 1.00000000) 或 [下一个(N)/上一个(P)/选择点(S)/退出(X)] <下一个>:
输入新权值 (当前值 = 1.00000000) 或 [下一个(N)/上一个(P)/选择点(S)/退出(X)] <下一个>: 2   <-----在这里输入2,把第二点的权值修改为2。  
输入新权值 (当前值 = 2.00000000) 或 [下一个(N)/上一个(P)/选择点(S)/退出(X)] <下一个>: x
输入顶点编辑选项 [添加(A)/删除(D)/提高阶数(E)/移动(M)/权值(W)/退出(X)] <退出>: x
输入选项 [闭合(C)/合并(J)/拟合数据(F)/编辑顶点(E)/转换为多段线(P)/反转(R)/放弃(U)/退出(X)] <退出>: x



分析:
由曲线方程可知,曲线经过(2,sqrt(3))和(2,-sqrt(3))两点,这两点可作为样条的两个端点。
经过计算,可知在点(2,sqrt(3))双曲线的切线斜率为2Xsqrt(3)/3,交X轴线于C(0.5,0)点,又可知曲线经过D(1,0)点
所以权值为DE/CD=1/0.5=2,因此控制点C的权值要输入2.

3、总结方法,
a、首先找到曲线的两个端点(一般做对称的好些,不对称区间可以用对称区间画出,后期用裁剪命令修剪)作为第一个控制点和第三个控制点。
b、第二点为首位两个端点的切线相交点。
c、计算和修改权值,得到需要曲线。权值大于1为双曲线,等于1为抛物线,小于1为椭圆。读者自行验证。

如果读者觉得步骤麻烦,可以用简单的LISP程序来生成。

4、关于证明,大家可以参考样条曲线的知识,经过验证,用三个控制点的时候,二阶样条曲线的方程表达完全一致。
有什么不足的地方请大家多多指教。
转载此文需标明原作者和来源。

本帖子中包含更多资源

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

x

评分

参与人数 4明经币 +6 金钱 +100 收起 理由
pzweng + 2 很给力!
chenmik + 1 + 20 赞一个!
qjchen + 2 + 30 很给力!
mahuan1279 + 1 + 50 很给力!

查看全部评分

发表于 2020-9-13 07:25 | 显示全部楼层
这种功能都被找出来了。强悍!!!
发表于 2020-9-13 10:31 | 显示全部楼层
飞鸟大师666
 楼主| 发表于 2020-9-13 11:31 | 显示全部楼层
本帖最后由 highflybird 于 2020-9-13 11:35 编辑

通过研究,发现可以作出高阶的曲线,譬如作 在区间(0,1)上y=x^5的多项式曲线。
把区间(0,1)等分成5等分,用spline画样条曲线,阶数设置为5,
从原点开始,依次通过4个等分点,到达最后的控制点为(1,1),
这样就得到了所需曲线。

不过随着阶数的升高,精度会有所降低。不过依然可以达到一般需要。

本帖子中包含更多资源

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

x
发表于 2020-9-13 11:56 | 显示全部楼层
感谢高飞鸟大神的知识共享!
发表于 2020-9-13 13:16 | 显示全部楼层
感谢版主分享。先顶后看。
发表于 2020-9-13 13:54 来自手机 | 显示全部楼层
就是控制点,节点,权值不好理解
发表于 2020-9-14 10:05 | 显示全部楼层
看着像犀牛的画线模式
发表于 2020-9-14 23:28 | 显示全部楼层
大师出马必定精品
发表于 2020-9-15 22:42 | 显示全部楼层
请教版主:你在双曲线分析中所说:
经过计算,可知在点(2,sqrt(3))双曲线的切线斜率为2Xsqrt(3)/3,交X轴线于C(0.5,0)点,又可知曲线经过D(1,0)点
所以权值为DE/CD=1/0.5=2,因此控制点C的权值要输入2.
这个斜率和权值具体是怎么计算得到的?能说详细一点吗?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2020-10-25 10:31 , Processed in 0.156507 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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