Построение функции тэты и фи как цветного графика на сфере

Я пытаюсь подготовить это упражнение в моем классе на 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и может также добавить некоторые повороты, если ваши "горячие" и "холодные" точки не находятся на полюсах.

Другие вопросы по тегам