本帖最后由 w_hs 于 2013-6-23 08:53 编辑
阿丹,很抱歉,只因我最近精神欠佳,又有一些其它事情缠身,所以很少上网,也懒得动脑筋,因此一直没有回答你的问题。想来惭愧,今日帮你推导了一下。 你的原问题: 且不论SW是否支持闭环曲线,一个圆柱面上的封闭波浪曲线方程是: X(t)=R*cos(t) Y(t)=H*cos(N*t) Z(t)=R*sin(t) t=0~2*pi 但是,球面上的封闭波浪曲线方程是什么呢? 其实也很简单。 当Y值不等于0的时候,点(X,Y,Z)不在半径为R的球面大圆上,而是在球面的一个小圆上,其小圆半径为: sqr(R^2-( H*cos(N*t))^2) 因此其方程为: X(t)= sqr(R^2-(H*cos(N*t))^2)*cos(t) Y(t)=H*cos(N*t) Z(t)= sqr(R^2-(H*cos(N*t))^2)*sin(t) t=0~2*pi 以上是第一种情况,它是一条高度按余弦规律变化的球面波浪线。另一种更实用的是纬度按余弦规律变化的球面波浪线,其方程为: X(t)= R*cos(θ*cos(N*t))*cos(t) Y(t)= R*sin(θ*cos(N*t)) Z(t)= R*cos(θ*cos(N*t))*sin(t) t=0~2*pi 下图中是按两种情况的波浪线: 第一种情况 大圆半径R=50,波幅H=10,波段数N=10 第二种情况 大圆半径R=50,纬度波幅θ=0.2弧度,波段数N=10
|