Basic Hyperbolic Operations
Licensed under Creative Commons: other posts

math

A technique for the Minkowski representation of hyperbolic geometry, including the hyperbolic linear interpolation or hlerp.

There are three widely-used geometries with a constant Riemannian curvature tensor: Euclidean, spherical, and hyperbolic. Of the three, hyperbolic is the most fun. It’s big (area increases exponentially with distance), looks small (binocular parallax says everything is close at hand), and it doesn’t admit a simple orientation field like the axes of Euclidean geometry or the poles of spherical geometry.

# The Minkowski representation

The nicest mathematical representation for hyperbolic points and planes is a homogeneous vector: (x, y, z, w) in 3D for example, where by definition multiplying the vector by a scalar doesn’t change it. I like to write that as (x, w), where x is a normal vector and w is the scalar homogeneous part.

The hyperbolic dot or inner product, (x, a)·(y, b), is defined as abx·y. A normalized homogeneous vector v has the characteristic that the vector’s squared magnitude or self-dot, v·v, is ±1. A vector can be normalized by dividing it by the square root of the absolute value of its self-dot. Vectors for which the self-dot is positive are called points; those for which it is negative are called planes. The notion of a Euclidean vector—that is, a direction and magnitude independent of location—has no obvious parallel in non-Euclidean geometry.

# Hyperbolic Trigonometry

In the Minkowski geometry we’ll make liberal use of hyperbolic trigonomtry functions:

• sinh(x) =  ex – e–x 2
,
• cosh(x) =  ex + e–x 2
,
• asinh(x) = ln(x + √x2 + 1), and
• acosh(x) = ln(x + √x2 – 1).
These functions are well documented in most calculus textbooks.

# Basic Properties

Unless otherwise specified, I assume all vectors are normalized.

The distance between two points is acosh(p·q). The distance between a point and a plane is asinh(p·q). The angle between two planes is acos(p·q) if that is defined (i.e., |p·q| ≤ 1); otherwise the planes do not intersect. For two points, p + q is their midpoint and pq is the plane dividing them

The hyperbolic linear interpolation gives points along the line defined by two points. It is a direct parallel to the spherical linear interpolation, or slerp, used in spherical geometry. Given d = acosh(p·q) and s = 1 – t, we can find a normalized point hlerp(p, t, q) as (sinh(sd)p + sinh(td)q) ÷ sinh(d).

I’ll talk about affine transformations and the experiential quality of hyperbolic geometries in a later post.