在球体上画一个旋转圆圈

4次观看(最近30天)
我试图旋转一个像Matlab上的眼睛的球体,并想模拟与旋转一起移动的球体上的瞳孔。
[x,y,z] =球体;
S1 =冲浪(X,Y,Z,,“ faceColor”,[1 1 1],'edgeColor',,,,'没有任何');
set(GCA,'颜色',,,,'K'
xdir = [1 0 0];
ydir = [0 1 0];
zdir = [0 0 1];
旋转(S1,ZDIR,10);
旋转(S1,YDIR,10);
旋转(S1,XDIR,10);
我为旋转的球体编写了一个代码,但我不知道如何将瞳孔绘制在球体中心上,以便旋转后的最终数字看起来有些像这样 -

接受的答案

法比奥·弗雷斯基(Fabio Freschi)
编辑:法比奥·弗雷斯基(Fabio Freschi) 2021年9月23日
该代码应该是自我解释的
[x,y,z] =球体;
% 数字
图,保持
平等的,查看([1 1 1]);
百分比透明度
S1 =冲浪(X,Y,Z,,“ faceColor”,[1 1 1],'edgeColor',,,,'没有任何',,,,'facealpha',0.5);
%我不喜欢黑色背景
%set(gca,'颜色','k')
眼睛半径(更一般)
r = max(sqrt(x(:)。^2+y(:)。^2+z(:)。^2));
瞳孔半径%
r = 0.6;
距中心的%距离
h = sqrt(r^2-r^2);
%创建光盘
n = 30;
a = linspace(0,2*pi,n);
s2 = fill3(h*ons(n,1),r*cos(a(:)),r*sin(a(:)),,'b');
% 回转
xdir = [1 0 0];
ydir = [0 1 0];
zdir = [0 0 1];
旋转(S1,ZDIR,10);
旋转(S1,YDIR,10);
旋转(S1,XDIR,10);
瞳孔旋转%
旋转(S2,ZDIR,10);
旋转(S2,YDIR,10);
旋转(S2,XDIR,10);

更多答案(0)

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!