#### Description:

This function finds the Frame coordinate values of a point which is offset a specified distance along the geodesic curve between two other points.

For example, in a basic Frame, this offset will be along the straight line joining two points. For a more specialised Frame describing a sky coordinate system, however, it would be along the great circle passing through two sky positions.

#### Synopsis

void astOffset( AstFrame ∗this, const double point1[], const double point2[], double offset, double point3[] )

#### Parameters:

##### this

Pointer to the Frame.

##### point1

An array of double, with one element for each Frame axis (Naxes attribute). This should contain the coordinates of the point marking the start of the geodesic curve.

##### point2

An array of double, with one element for each Frame axis This should contain the coordinates of the point marking the end of the geodesic curve.

##### offset

The required offset from the first point along the geodesic curve. If this is positive, it will be towards the second point. If it is negative, it will be in the opposite direction. This offset need not imply a position lying between the two points given, as the curve will be extrapolated if necessary.

##### point3

An array of double, with one element for each Frame axis in which the coordinates of the required point will be returned.

#### Notes:

- The geodesic curve used by this function is the path of shortest distance between two points, as defined by the astDistance function.

- This function will return `"` bad`"` coordinate values (AST__BAD) if any of the input coordinates has this value.

- `"` Bad`"` coordinate values will also be returned if the two points supplied are coincident (or otherwise fail to uniquely specify a geodesic curve) but the requested offset is non-zero.

Copyright (C) 2021 East Asian Observatory