iCAx开思网

标题: 椭球面螺旋 [打印本页]

作者: 22553711    时间: 2014-5-30 10:56
标题: 椭球面螺旋
本帖最后由 22553711 于 2014-5-30 14:12 编辑

一直想导出这样一条曲线方程,结果有心无力~
有幸看了闷大、丹哥出的教程,另辟新径,可谓妖术。
当然将球改为椭球,似乎又有点小小差异,感兴趣的朋友可以一试。
如朋友用方程作答,可否讨论分享一下?
[attach]1199852[/attach]
作者: ltq59    时间: 2014-5-30 12:11
技术+1,有劳木大加分
作者: fanrens2977    时间: 2014-5-30 13:39
这个方程还是比较好推的了
[attach]1199861[/attach]

作者: 22553711    时间: 2014-5-30 13:57
fanrens2977 发表于 2014-5-30 13:39
这个方程还是比较好推的了

俺想要的是扫描成实体后圈圈相切,不知朋友的这个方程是否如此?
作者: fanrens2977    时间: 2014-5-30 14:11
首先知道椭圆方程为:
x=a*cos(360*t)
y=b*sin(360*t)
z=0
如下图方程曲线,其中a=10(椭圆长轴) b=5(椭圆短轴),  n=1 螺旋的圈楼   z=0   螺旋的高度变化!其中t是CAD软件里默认参数,从0到1变化!如下图!
[attach]1199862[/attach]
然后再让它变成有高度有圈数的螺旋,X方程加一个N,Y方程加一个N,而z=10*t   就让螺旋从0到10mm的高度内螺旋!然后让n=10螺旋10圈如下图
x=a*cos(n*360*t)
y=b*sin(n*360*t)
z=10*t

[attach]1199865[/attach]
然后再让它变成一个球形螺旋!其实就是让长轴a,短轴b由一个小值变到一个大值再变回小值的过程!其实我们知道正sin()如果从0到180度,刚好就是从一个0变到1 再回到0的过程!那下面就变得简单了!我们假设让长轴a由0.1变到10.1再变回0.1。而短轴b由0.1变到5.1再变回0.1! 那方程如下:
a=0.1+10*sin(180*t)
b=0.1+10*sin(180*t)

而之前的X,Y,Z方程不变!
x=a*cos(n*360*t)
y=b*sin(n*360*t)
z=10*t  
如下图:
[attach]1199868[/attach]

以上是推导过程,从一个简的椭圆开始慢慢让它有高度,有圈娄,长轴,短轴有变化!
当然后最终可以把a,b方程代入到x,y方程里得到总方程!
x= (0.1+10*sin(180*t) )*cos(n*360*t)
y= ( 0.1+10*sin(180*t) )*sin(n*360*t)
z=10*t  
当然单看总方程,我也觉得太复杂了,我也记不住,但我每次用的时候,花个几分钟,可以慢慢推出来!当然基本的圆方程,椭圆方程,还是能记住,不过记不住没关系,我们还有百度!呵呵!







作者: fanrens2977    时间: 2014-5-30 14:15
22553711 发表于 2014-5-30 13:57
俺想要的是扫描成实体后圈圈相切,不知朋友的这个方程是否如此?

圈圈相切,只是管的半径与3D间距的一半相等即可!一旦圈楼,高度定下来之后,螺旋间距也是定的

作者: 22553711    时间: 2014-5-30 14:26
fanrens2977 发表于 2014-5-30 14:11
首先知道椭圆方程为:
x=a*cos(360*t)
y=b*sin(360*t)

感谢朋友无私分享推导过程!
第一个椭圆方程,俺是知道的;
第二个椭圆柱螺旋,俺也是知道的;
第三个椭圆球螺旋,俺也能勉强导出。您给出的方程Z轴坐标呈线性变化,但这并不符合“圈圈相切”的要求。看朋友用的PROE,可能不知道不老叔(SW界前辈),如果是球螺旋,他老人家将符合这种“圈圈相切”的球螺旋定义为维度线性变化,而非螺旋高度线性变化。再次感谢朋友的参入及分享,也期待您的再次参入。
[attach]1199870[/attach]
作者: fanrens2977    时间: 2014-5-30 14:29
22553711 发表于 2014-5-30 14:26
感谢朋友无私分享推导过程!
第一个椭圆方程,俺是知道的;
第二个椭圆柱螺旋,俺也是知道的;

不好意思 我理解错了,这个方程推出来的是等高间距,而不是沿面等距!我再研究一下,另我是用UG做的!当然用PROE也是一样的!


作者: 22553711    时间: 2014-5-30 14:33
fanrens2977 发表于 2014-5-30 14:29
不好意思 我理解错了,这个方程推出来的是等高间距,而不是沿面等距!我再研究一下,另我是用UG做的!当然 ...

原来是油鸡,俺又出丑了……
作者: 悟『仁』紫帝    时间: 2014-5-30 15:30
顶木大一个,顺便交作业,请木大指点~[attach]1199874[/attach]

作者: 悟『仁』紫帝    时间: 2014-5-30 15:36
悟『仁』紫帝 发表于 2014-5-30 15:30
顶木大一个,顺便交作业,请木大指点~

[attach]1199875[/attach]这是俺的特征树~~

作者: 悟『仁』紫帝    时间: 2014-5-30 15:56
悟『仁』紫帝 发表于 2014-5-30 15:36
这是俺的特征树~~

看着您给的俩链接现学现卖的~~

作者: sa028698    时间: 2014-5-30 19:36
[attach]1199899[/attach]

作者: ltq59    时间: 2014-5-31 08:46
sa028698 发表于 2014-5-30 19:36

别具一格
作者: 开心7788    时间: 2014-5-31 09:27
现学现卖,觉得自己好菜,什么都不会。
作者: sep6340    时间: 2014-6-4 12:14
学习一下
作者: fanrens2977    时间: 2014-6-5 09:22
本帖最后由 fanrens2977 于 2014-6-5 09:28 编辑
22553711 发表于 2014-5-30 14:33
原来是油鸡,俺又出丑了……

呵,过了端午节,发现这里还有一个讨论没有结束,后来仔细研究了一下,主要是z轴变化不能是简单的线变化,我想到了用球坐标,仰角的线性变化可以实现球面的等弧长变化!然后再把球坐标转成直角坐标方程,就行了!
[attach]1200112[/attach]
其中的8是球半径
改变其中的Z轴的半径,就会变成了z方向的椭圆球!
[attach]1200113[/attach]
其中的8是球半径
改变其中的Y,或X轴的半径,就会变成了X,Y方向的椭圆球!
[attach]1200114[/attach]

但是,最后发现一旦在某个方向半径有变化,等 角度的变化,与等弧长变化就不能完全匹配,还是有误差!不完美!看光从方程式完美解决!还需要思考!





作者: 22553711    时间: 2014-6-5 13:14
fanrens2977 发表于 2014-6-5 09:22
呵,过了端午节,发现这里还有一个讨论没有结束,后来仔细研究了一下,主要是z轴变化不能是简单的线变化, ...

朋友的这种做法,俺也想到过,但并不合题意。下面是依据您提供的方程作图,加以验证:
取4个点,即t=0,0.05,0.1,0.15(其余皆同),该4点在图中半径8的圆上对应3段长度相等的弦,显然在椭圆上对应的3段弦长并不相等,所以并不能形成圈圈相切,长短半径差异越大则误差越大。
[attach]1200131[/attach]
作者: fanrens2977    时间: 2014-6-6 09:45
22553711 发表于 2014-6-5 13:14
朋友的这种做法,俺也想到过,但并不合题意。下面是依据您提供的方程作图,加以验证:
取4个点,即t=0,0 ...

唉,方程式看来不是很好推出来了,也只好用描扫的方式做出来了!算是交差了!
[attach]1200252[/attach]

作者: yzy539    时间: 2014-6-6 15:07
支持,做做练习。
[attach]1200291[/attach]

作者: hhmyh    时间: 2014-6-11 22:23
学习中,顶一个
作者: User996    时间: 2019-9-4 21:42
厉害了
作者: scattie    时间: 2019-9-5 11:48
厉害   支持一下





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3