- Vive le File Exchange !
Alors ne réinventez pas la roue, il y a un fichier qui le fait déjà sur le File Exchange :
A christmas tree plot
Il a été écrit en 2008 et a été sélectionné comme POTW le 25 décembre de la même année.
Regardez comme c’est joli :
Pour créer le sapin on utilisera les 2 fonctions suivantes :
- cylinder : Generate cylinder
- surfl : Surface plot with colormap-based lighting
Pour créer les cadeaux en bas du sapin, on utilisera la fonction surf:
- surf : 3-D shaded surface plot
Pour créer les flocons de neige , la fonction plot3 fera l’affaire:
- plot3 : 3-D line plot
- Et comment qu’on dit joyeux noël avec MATLAB?
Alors là j’aurais envie de vous souhaiter Joyeux noël MATLAB geeks! ou si vous vous rappelez de mon billet Draguer avec MATLAB on pourrait écrire dans MATLAB:
>> xx = int8(‘Joyeux noël MATLAB geeks!’)
xx =
Columns 1 through 18
74 111 121 101 117 120 32 110 111 127 108 32 77 65 84 76 65 66
Columns 19 through 25
32 103 101 101 107 115 33
>>char(xx)
ans =
Joyeux nol MATLAB geeks!
Mince il y a un caractère spécial du à l’accent dans le mot noël. En effet int8 affiche les valeurs entre -128 à 127. Or pour afficher le ë , on a besoin d’un char(235). Le int8 va donc faire un carré blanc, du coup il faut utiliser double ou int16:
>> yy = double(‘Joyeux noël MATLAB geeks!’)
yy =
Columns 1 through 15
74 111 121 101 117 120 32 110 111 235 108 32 77 65 84
Columns 16 through 25
76 65 66 32 103 101 101 107 115 33
>> char(yy)
ans =
Joyeux noël MATLAB geeks!
Voilà c’est mieux !
- Plus de fun
Sur le blog File Exchange Pick of the Week où christmas a été sélectionné : Holiday Cheer!
le premier commentaire donne une procédure pour faire tourner le sapin sur lui même en utilisant l’icône Orbit Camera depuis le menu View -> Camera Toolbar . Franchement c’est sympa et ça permet de se rappeler de ces « gadgets » !
Sur la page du Fex où le fichier peut être téléchargé , un commentaire suggère pour la version 2 de christmas.m d’animer les flocons de neige. Pour cela rien de plus simple, moi je remplacerais la ligne suivante:
plot3(snowX,snowY,snowZ,'w*')
%plot coordinates as white snow flakes
par une for-loop:
for ii = 1 : numel(snowX)
plot3(snowX(ii),snowY(ii),snowZ(ii),'w*')%plot coordinates as white snow flakes
pause(0.1)
end
et pour accélérer l’animation, il suffirait de réduire le nombre de flocons de 800 par défaut à 100 par exemple.
snow=100; % number of snow flakes [0 .. 5000]
Have fun !