2024 年 10 月 7 日 - 11 月 10 日,加入 MATLAB Shorts Mini Hack 大赛!
作者注释:
Pumpspring 是从去年比赛中我同名的 minihack 改编而来的,这样我就可以尝试生成声音。由于声音生成不是 minihack 的一部分,我可以将其注释掉以节省字符。
function drawframe(f)
persistent P Srf Zx
spring=sinpi(f/24)+2;
n=300;% Resolution of the sphere
S=10; % Number of spirals
w=.1/spring;% Thickness of the ribbon.
nb=12;% Number of bumps in the punkin
% Theta goes around S times, with n verts per round.
T=linspace(0,S*2,n*S);
T=[T;T];% top and bottom of ribbon
% Phi slowly goes from -.5 to .5 (top+bottom of sphere) with same
% as theta.
P=linspace(-.5+w,.5,3000);
%P=-.5:.0003:.5;
P=[P;P-w];% top and bottom of ribbon, thickness of w.
% Radius of punkin has bumps. R modulates
R=1-(1-mod(T*nb,2)).^2/15;
% Make the surface coordinates
X=cospi(P).*cospi(T);
Y=cospi(P).*sinpi(T);
if f==1
Z=(.8+(0-(P*2).^4)*.2).*sinpi(P);
Zx=max(Z,[],'all');
% Draw
Srf=surf(R.*X,R.*Y,R.*Z,'FaceColor','#f71','EdgeColor','n');
surface(X/12,Y/12,Z/2+.7,'FaceColor','#080','EdgeColor','n');
camlight
lighting g
material([.6 .9 .3 2 .5])
daspect([1 1 1]);
axis([-1 1 -1 1 -3 .5],'off');
set(gca,'pos',[0 0 1 1],'clipping','off');
set(gcf,'color','w');
end
Z2=(.8+(0-(P*2).^4)*.2).*sinpi(P)*spring;
Z2x=max(Z2,[],'all');
set(Srf,'ZData',Z2-diff([Zx Z2x]));
%% Generate a tone:
% Tone is based on how sproinged the pumpkin is.
%springnorm = (spring-1)/2;
% AS is "audio syncrhonizer" object I wrote for this purpose.
%AS.osc.freq = 80-springnorm^4*20;
%AS.osc.volume = springnorm^5;
创意表达:用 MATLAB 将你的想法以短片方式呈现出来 小白友好:没有经验也没关系,欢迎所有人参与 社区互动:为你喜欢的作品投票,或对现有作品进行再创作 赢取大奖:还可能收获令人兴奋的奖励(奖金、礼品卡、纪念衫等)!
使用 MATLAB 代码创造你的 12s 精彩短片 本次竞赛持续 5 周:2024 年 10 月 7 日 00:00:00 - 11 月 10 日 23:59:59(美东时间) 提交作品参与比赛,或参与互动,为你喜欢的任意多的作品投票等 从社区中汲取创作灵感,加入你自己的创意,对现有作品进行再创作,使其成为你的作品
◆ ◆ ◆ ◆