- 在线时间
- 0 小时
- 最后登录
- 2010-4-18
- 注册时间
- 2010-1-25
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 433 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 180
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 101
- 主题
- 5
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
- 自我介绍
- 神秘的Charles
 |
我知道利用圆的参数方程和一维插值方法可以生成随机的封闭曲线。
取若干个【0,2*pi】内的数作为参数a,并对应生成一个随机数作为半径r(两端的值相等)。
再通过插值方法将【0,2*pi】内“所有”点的半径求出来,最后作图即可。
但是如何利用球体的参数方程和二维插值方法来生成随机封闭曲面呢?
参数a【0,2*pi】
参数b【-0.5*pi,0.5*pi】
出现问题是这曲线做出来不封闭且两头尖啊,估计是插值时出了问题,求高手指点……
-
- N=0.1;
- n=pi/6;
- nonrandbit=1;
- randbit=1;
- ta=[0:n:2*pi];
- tb=[-0.5*pi:n:0.5*pi];
- [Ta,Tb]=meshgrid(ta,tb);
- tta=[0:N:2*pi];
- ttb=[-0.5*pi:N:0.5*pi];
- [TTa,TTb]=meshgrid(tta,ttb);
- r=nonrandbit+randbit*rand(size(Ta));
- %r=nonrandbit+randbit*ones(size(t));
- r(:,size(r,2))=r(:,1);
- x=r.*cos(Ta).*cos(Tb);
- y=r.*sin(Ta).*cos(Tb);
- z=r.*sin(Tb);
- rr = interp2(Ta,Tb,r,TTa,TTb);
- xx=rr.*cos(TTa).*cos(TTb);
- yy=rr.*sin(TTa).*cos(TTb);
- zz=rr.*sin(TTb);
- subplot(221)
- mesh(x,y,z)
- subplot(222)
- mesh(xx,yy,zz)
- subplot(223)
- plot3(x,y,z,'*')
- subplot(224)
- plot3(xx,yy,zz,'*')
复制代码 |
zan
|