3D Earth and Celestial Bodies (planet3D)
编者注: This file was selected as MATLAB Central Pick of the Week
planet3D
Creates high-resolution renderings of the Earth and the major celestial bodies in our solar system for astrodynamics applications.
Syntax
planet3D
planet3D(planet)
planet3D(planet,opts)
planet_surface = planet3D(__)
Description
planet3D
draws the Earth with clouds. Units are in meters by default.
planet3D(planet)
draws the celestial body specified by planet
, which can be input as 'Sun'
, 'Moon'
, 'Mercury'
, 'Venus'
, 'Earth'
, 'Earth Cloudy'
, 'Earth Night'
, 'Earth Night Cloudy'
, 'Earth Coastlines'
, 'Mars'
, 'Jupiter'
, 'Saturn'
, 'Uranus'
, 'Neptune'
, or 'Pluto'
. Units are in meters by default.
planet3D(planet,opts)
does the same as the syntax above, but allows for the specification of optional plotting parameters. opts
is a struct that has the following fields:
-
Clipping
→'on'
if surfaces should be "clipped" to fit axes,'off'
otherwise (defaults tooff
) -
Color
→ specifies line color -
FaceAlpha
→ specifies how transparent the celestial body is (0 for 100% transparency, 1 for 100% opacity) -
LineWidth
→ specifies line width -
LineStyle
→ specifies line style -
Position
→ specifies the position of the center of the celestial body -
RefPlane
→ specifies which reference plane the celestial body is drawn with respect to. If specified asequatorial
, the reference plane is taken to be the equatorial plane of the celestial body. If specified asecliptic
, the celestial body will be tilted by the obliquity (i.e. the angle between the ecliptic plane and the equatorial plane). -
RotAngle
→ specifies the rotation angle about the 3rd axis of the celestial body (in degrees) -
Units
→ specifies the units the celestial body should be drawn in. Units available are'AU'
,'ft'
,'km'
,'m'
,'mi'
, and'nmi'
.
planet_surface = planet3D(__)
does the same as the previous two syntaxes, but also returns the Surface
object defining the planet.
Note
- Use the
background
function (see below) to set the plot background. When usingbackground
to set the plot background, the function call onbackground
must occur before the function call onplanet3D
, otherwise the background will be plotted over the celestial body. - If you want to produce separate plots on separate figures using the
planet3D
function, always use thedrawnow
command before initializing a new figure to ensure that the correct plots are drawn on the correct figures. - All fields of
opts
do NOT have to be defined; when a field is left undefined, the rest of the plot settings are set to default values. Additionally,Color
,LineWidth
, andLineStyle
are only relevant when plotting the Earth's coastlines.
background
Sets the plot background for drawing celestial bodies in 3D.
Syntax
background(spec)
Description
background(spec)
sets the plot background for drawing celestial bodies in 3D. spec
refers to the specified background, and can be set to 'Black'
, 'Stars'
, or 'Milky Way'
.
Note
- The function call on
background
must occur before the function call onplanet3D
.
Examples and Additional Documentation
- See
EXAMPLES.mlx
or the "Examples" tab on the File Exchange page for examples. - See Visualizing Celestial Bodies in 3D.pdf (also included with download) for additional documentation.
Installation
- Open
3D Earth and Celestial Bodies (planet3D).mltbx
in theINSTALL
folder to install as a toolbox. MATLAB will automatically perform the installation and add all the functions, images, and data to the MATLAB search path. - Alternatively, the "planet3D" folder can be copy and pasted into the folder containing the script that you want to use the functions in. At the beginning of the script, include
addpath('planet3D')
to add all functions, images, and data to the MATLAB search path.
引用格式
Tamas Kis (2024). 3D Earth and Celestial Bodies (planet3D) (https://github.com/tamaskis/planet3D-MATLAB/releases/tag/v5.4.0), GitHub. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!