Bonjour à tous,

Le but de mon programme est de générer un ellipsoïde dans l'espace (jusque là pas de problèmes) mais la couleur de l'ellipsoïde doit varier en fonction de x.
En effet, je veux que la couleur suive une loi normale : blanc en x = 0 jusqu'à noire en x = 15. J'ai donc généré les triplets RGB mais comment faire pour les couleurs de mon ellipsoïde changent ?
J'ai testé différentes méthodes avec colormap ou surf mais aucune n'a aboutie.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
close all;
 
xx = 0:1:15;
mu = 0;
sigma = 5;
pdf = normpdf(xx,mu,sigma);
PDF = pdf/max(pdf);
s = size(PDF);
%plot(xx,PDF)
 
map = zeros(s(2),3);
 
for i=1:s(2)
 
    map(i,:) = [PDF(i) PDF(i) PDF(i)];
 
end
 
lambda = 5;
a = 1;
b = lambda * a;
[x, y, z] = ellipsoid(0,0,-30,b,a,a);
S1 = surf(x,y,z);
 
S1.FaceColor = 'white';
S1.EdgeColor = 'white';
set(gca,'color','k')
xlabel('X')
ylabel('Y')
zlabel('Z')
 
center = [0 0 -30];
rotate(S1, [1 0 0], 45, center);
rotate(S1, [0 1 0], 30, center);
rotate(S1, [0 0 1], 70, center);
Merci de vos réponses