Aby stworzyć miłą oświetlenie i cienie, trzeba dodać światło na swojej działce, i dodać jakieś oświetlenia twarzy. Jeśli rozdzielczość jest zbyt niska, to skończy się nieco spartaczoną fabułą, ponieważ cieniowanie w stylu "interp" wykorzystuje interpolację liniową. Na przykład
n = 51;
x=linspace(-5., 5., n);
y=linspace(-5., 5., n);
[x, y]=meshgrid(x, y);
sinc = @(x) sin(x)./x;
z=sinc(x.*y);
z(isnan(z)) = 1;
surf(x, y, z, 'LineStyle', 'none', 'FaceColor', 'interp')
colormap(cool)
camlight right
set(gca, 'CameraPosition', [45 35 9.8])
która produkuje następujące
Zauważ, że jak gładka powierzchnia wydaje się związane z n
. Większe wartości n
zwiększą gładkość powierzchni.
Jeżeli dane które produkują jest drogie, aby utworzyć, można zwiększyć rozdzielczość przy użyciu bardziej zaawansowaną formę interpolacji niż liniowy, co następuje
n = 51;
x=linspace(-5., 5., n);
y=linspace(-5., 5., n);
[x, y]=meshgrid(x, y);
sinc = @(x) sin(x)./x;
z=sinc(x.*y);
z(isnan(z)) = 1;
nn = 401;
xi = linspace(-5.0, 5.0, nn);
yi = xi;
[xi, yi] = meshgrid(xi, yi);
zi = interp2(x, y, z, xi, yi, 'spline');
surf(xi, yi, zi, 'LineStyle', 'none', 'FaceColor', 'interp')
colormap(cool)
camlight right
set(gca, 'CameraPosition', [45 35 9.8])
która produkuje następujący obraz
Szczegółowe informacje można znaleźć na następujących stronach pomocy:
Dobre pytanie. Pozwólcie, że wspomnę o wolnym oprogramowaniu, alternatywnym oprogramowaniu Open Source do tych dwóch zastrzeżonych programów: GNU Octave. Co do "Mathematica" i "MATLAB", nie mam pojęcia. – cfa45ca55111016ee9269f0a52e771
Jakiej wersji MATLAB używasz? Dostaję [ładną fabułę] (http://i.imgur.com/WzFHUgn.png) ... –
@EitanT Używam 2012a na Macu. Ale w twojej działce wciąż są zmarszczki i linie w ścianie. – xslittlegrass