Построение функции тэты и фи как цветного графика на сфере
Я пытаюсь подготовить это упражнение в моем классе на Matlab (как часть лаборатории прикладной физики для инженеров CS), где вы должны смоделировать колебание температуры над поверхностью планеты, одна сторона которой всегда обращена к родительской звезде, а одна сторона всегда подальше от него (наполовину замороженный, наполовину запеченный). Вот функция, которую я использую:
Т (тета, фи) = Т0 + Т1* грех ^2(тета) + Т2*(1+ грех (Фи))
Я хочу нанести вышеописанную функцию на поверхность сферы в виде цветового графика, т.е. цвет точки на поверхности должен представлять температуру T в точке. Как я могу сделать это?
Все, что я сделал до сих пор, дает мне такой сюжет:
Я хочу что-то вроде изображения ниже, но с разным распределением цветов, конечно, в соответствии с функцией, которую я дал выше.
1 ответ
Это делает это частично:
T0 = 2 ; T1 = 30 ; T2 = 120 ; %// set your boundary conditions here
[X,Y,Z] = sphere(50) ; %// generate coordinates of a sphere
hs = surf(X,Y,Z) ; %// display the sphere and retrieve the handle to the graphic object
axis equal ; %// set the axis ratio so the sphere appear as a sphere
shading interp ; %// small refinement to not see the grid, you can comment that
[azimuth,elevation,r] = cart2sph(X,Y,Z) ; %// Convert cartesian coordinates to spherical referential
T = T0 + T1*sin(azimuth).^2 + T2.*(1+sin(elevation)) ; %// Calculate the temperature according to your model
set(hs,'CData',T) ; %// update the sphere graphic object with the new temperature as a collor coding
Теперь вам все еще нужно отрегулировать ваши начальные условия T0
, T1
а также T3
и может также добавить некоторые повороты, если ваши "горячие" и "холодные" точки не находятся на полюсах.