Matlab GUI Рис. Изменение положения освещения - PullRequest
0 голосов
/ 25 марта 2020

У меня довольно простой GUI со сферой и переменным источником света. В левом нижнем углу GUI есть текстовое поле, которое представляет собой угол источника света, который существует на плоскости XY и повернут на некоторый угол вокруг оси Z. Когда я вхожу под новым углом, свет ведет себя как ожидалось; однако, когда я использую инструмент «Камера орбиты», источник света возвращается к предыдущему месту, и я не могу понять, почему. Rotate3D не делает этого.

Любая помощь будет высоко ценится. Заранее спасибо!

function Example
figure(1)
[x y z]=sphere(60);
surf(x,y,z,'FaceColor','White'); hold on;
plot3([0 1.5],[0 0],[0 0],'r');
plot3([0 0],[0 1.5],[0 0],'g');
plot3([0 0],[0 0],[0 1.5],'b');

axis image;  
axis off;
uicontrol('Style','edit','String','0','Position',[10,10,30,15],'Tag','angle','Callback',@Ex_CB);
light('Position',[10 0 0],'Tag','SunLight')

set(gca,'Clipping','Off');
camtarget([0 0 0]);
cameratoolbar('Show');
end

function Ex_CB(source,eventdata)
ang=str2double(get(findobj('Tag','angle'),'String'));
set(findobj('Tag','SunLight'),'Position',[10*cosd(ang) 10*sind(ang) 0])
end

GUI

...