Accelerating the pace of engineering and science

# Documentation

## Great Circles, Rhumb Lines, and Small Circles

### Great Circles

In plane geometry, lines have two important characteristics. A line represents the shortest path between two points, and the slope of such a line is constant. When describing lines on the surface of a spheroid, however, only one of these characteristics can be guaranteed at a time.

A great circle is the shortest path between two points along the surface of a sphere. The precise definition of a great circle is the intersection of the surface with a plane passing through the center of the planet. Thus, great circles always bisect the sphere. The equator and all meridians are great circles. All great circles other than these do not have a constant azimuth, the spherical analog of slope; they cross successive meridians at different angles. That great circles are the shortest path between points is not always apparent from maps, because very few map projections (the Gnomonic is one of them) represent arbitrary great circles as straight lines.

Because they define paths that minimize distance between two (or three) points, great circles are examples of geodesics. In general, a geodesic is the straightest possible path constrained to lie on a curved surface, independent of the choice of a coordinate system. The term comes from the Greek geo-, earth, plus daiesthai, to divide, which is also the root word of geodesy, the science of describing the size and shape of the Earth mathematically.

### Rhumb Lines

A rhumb line is a curve that crosses each meridian at the same angle. This curve is also referred to as a loxodrome (from the Greek loxos, slanted, and drome, path). Although a great circle is a shortest path, it is difficult to navigate because your bearing (or azimuth) continuously changes as you proceed. Following a rhumb line covers more distance than following a geodesic, but it is easier to navigate.

All parallels, including the equator, are rhumb lines, since they cross all meridians at 90º. Additionally, all meridians are rhumb lines, in addition to being great circles. A rhumb line always spirals toward one of the poles, unless its azimuth is true east, west, north, or south, in which case the rhumb line closes on itself to form a parallel of latitude (small circle) or a pair of antipodal meridians.

The following figure depicts a great circle and one possible rhumb line connecting two distant locations. Descriptions and examples of how to calculate points along great circles and rhumb lines appear below.

### Small Circles

In addition to rhumb lines and great circles, one other smooth curve is significant in geography, the small circle. Parallels of latitude are all small circles (which also happen to be rhumb lines). The general definition of a small circle is the intersection of a plane with the surface of a sphere. On ellipsoids, this only yields true small circles when the defining plane is parallel to the equator. Mapping Toolbox™ software extends this definition to include planes passing through the center of the planet, so the set of all small circles includes all great circles as limiting cases. This usage is not universal.

Small circles are most easily defined by distance from a point. All points 45 nm (nautical miles) distant from (45ºN,60ºE) would be the description of one small circle. If degrees of arc length are used as a distance measurement, then (on a sphere) a great circle is the set of all points 90º distant from a particular center point.

For true small circles, the distance must be defined in a great circle sense, the shortest distance between two points on the surface of a sphere. However, Mapping Toolbox functions also can calculate loxodromic small circles, for which distances are measured in a rhumb line sense (along lines of constant azimuth). Do not confuse such figures with true small circles.

#### Computing Small Circles

You can calculate vector data for points along a small circle in two ways. If you have a center point and a known radius, use scircle1; if you have a center point and a single point along the circumference of the small circle, use scircle2. For example, to get data points describing the small circle at 10º distance from (67ºN, 135ºW), use the following:

`[latc,lonc] = scircle1(67,-135,10);`

To get the small circle centered at the same point that passes through the point (55ºN,135ºW), use scircle2:

`[latc,lonc] = scircle2(67,-135,55,-135);`

The scircle1 function also allows you to calculate points along a specific arc of the small circle. For example, if you want to know the points 10º in distance and between 30º and 120º in azimuth from (67ºN,135ºW), simply provide arc limits:

`[latc,lonc] = scircle1(67,-154,10,[30 120]);`

When an entire small circle is calculated, the data is in polygon format. For all calculated small circles, 100 points are returned unless otherwise specified. You can calculate several small circles at once by providing vector inputs. For more information, see the scircle1 and scircle2 function reference pages.

An Annotated Map Illustrating Small Circles.  The following Mapping Toolbox commands illustrate generating small circles of the types described above, including the limiting case of a large circle. To execute these commands, select them all by dragging over the list in the Help browser, then click the right mouse button and choose Evaluate Selection:

```figure;
axesm ortho; gridm on; framem on
setm(gca,'Origin', [45 30 30], 'MLineLimit', [75 -75],...
'MLineException',[0 90 180 270])
A = [45 90];
B = [0 60];
C = [0 30];
sca = scircle1(A(1), A(2), 20);
scb = scircle2(B(1), B(2), 0, 150);
scc = scircle1('rh',C(1), C(2), 20);
plotm(A(1), A(2),'ro','MarkerFaceColor','r')
plotm(B(1), B(2),'bo','MarkerFaceColor','b')
plotm(C(1), C(2),'mo','MarkerFaceColor','m')
plotm(sca(:,1), sca(:,2),'r')
plotm(scb(:,1), scb(:,2),'b--')
plotm(scc(:,1), scc(:,2),'m')
textm(50,0,'Normal Small Circle')
textm(46,6,'(20\circ from point A)')
textm(4.5,-10,'Loxodromic Small Circle')
textm(4,-6,'(20\circ from point C')
textm(-2,-4,'in rhumb line sense)')
textm(40,-60,'Great Circle as Small Circle')
textm(45,-50,'(90\circ from point B)')```

The result is the following display.