Mapping Toolbox | ![]() ![]() |
Geographic ellipse defined by its center, semimajor axes, eccentricity and azimuth
Syntax
[lat,lon] = ellipse1(lat0,lon0,ellipse) [lat,lon] = ellipse1(lat0,lon0,ellipse,offset) [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az) [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,geoid) [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,units), [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,units) [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,geoid,units) [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,geoid,units,npts) [lat,lon] = ellipse1(track,...) mat = ellipse1(...)
Description
[lat,lon] = ellipse1(lat0,lon0,ellipse) computes ellipses with a center at the point lat0, lon0. The ellipse is defined by the third input which of the form [semimajor-axis, eccentricity]. The lat0, lon0 inputs can be scalar or column vectors. The eccentricity input can be a 2-element row vector or a 2-column matrix. The ellipse input must have the same number of rows as the input lat0 and lon0. The input semimajor axis is in degrees of arc length on a sphere. All ellipses are oriented so that their semimajor axis lies due north.
[lat,lon] = ellipse1(lat0,lon0,ellipse,offset) computes the ellipses where the semimajor axis is rotated from due north by an azimuth offset. The offset angle is measure clockwise from due north. If offset=[], then no offset is assumed.
[lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az) uses the input az to define the ellipse arcs computed. The arc azimuths are measured clockwise from due north. If az is a column vector, then the arc length is computed from due north. If az is a two column matrix, then the ellipse arcs are computed starting at the azimuth in the first column and ending at the azimuth in the second column. If az=[], then a complete ellipse is computed.
[lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,geoid) computes the ellipse on the ellipsoid defined by the input geoid vector, of the form [semimajor-axis, eccentricity]. If omitted, the unit sphere, geoid=[1 0], is assumed. When a geoid is supplied, the input semimajor axis must be in the same units as the geoid semimajor axes. In this calling form, the units of the ellipse semimajor axis are not assumed to be in degrees.
[lat,lon] = ellipse1(lat0,lon0,ellipse,offset,units
), [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,units
), and [lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,geoid,units
) are all valid calling forms, which use the input units
to define the angle units of the inputs and outputs. If omitted, 'degrees' are assumed.
[lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,geoid,units
,npts) uses the input npts
to determine the number of points per ellipse computed. The input npts
is a scalar, and if omitted, npts=100
.
[lat,lon] = ellipse1(track
,...) uses the track string to define either a great circle or rhumb line distances from the ellipse center. If track = 'gc', then great circle distances are computed. If track = 'rh', then rhumb line distances are computed. If omitted, 'gc' is assumed.
mat = ellipse1(...) returns a single output argument where mat=[lat lon]. This is useful if only one ellipse is computed.
Example
Create and plot the small ellipse centered at (0°,0°), with a semimajor axis of 10° and a semiminor axis of 5°.
axesm mercator ecc = axes2ecc(10,5); plotm(0,0,'r+') [elat,elon] = ellipse1(0,0,[10 ecc],45); plotm(elat,elon)
If the desired radius is known in some non-angular distance unit, use the radius returned by the almanac function as the geoid input to set the range units (use an empty azimuth entry to specify a full ellipse).
earthradius = almanac('earth','radius','nm'); [elat,elon] = ellipse1(0,0,[550 ecc],45,[],earthradius); plotm(elat,elon,'m--')
For just an arc of the ellipse, enter an azimuth range:
Remarks
This function extends the concept of the small circle, which is the locus of all points at an equal surface distance, to a 'small ellipse'. The small ellipse is constructed by computing the locus of points for which the distance from the center point varies as the parametric description of the ellipse.
Multiple circles can be defined from a single starting point by providing scalar lat0, lon0 inputs and a 2 column matrix for the ellipse definitions.
See Also
scircle1 |
Small circle defined by its center, range and azimuth |
track1 |
Track lines defined by starting point, azimuth and range |
axes2ecc |
Computes eccentricity given semimajor, semiminor axes |
![]() | elevation | encodem | ![]() |