Home

Geometric Constructions

This page indexes the set of target constructions I’ve implemented for a web-based geometry tool (which may also be used independently). This way, I may sufficiently describe each problem/challenge without cluttering the UI. I will also use this page to briefly describe the interface.

Instructions

For each objective linked below, a target object (or multiple) will appear in dashed, gold strokes. The task is to recreate the target(s) via compass-and-straightedge construction, given an initial set of reference objects (points, lines, circles) and the following rules:

  • New points may be constructed at the intersections of lines and/or circles.
  • New lines may be constructed to pass through any two established points.
  • New circles must be centered on a first point and pass through a second.
  • The straightedge draws lines, but cannot measure distance.
  • The compass resets after each circle drawn; it does not remember radii.

Success is determined by a battery of pseudorandom unit tests which treat the construction as a function of the set of initial points.

Interface

  • Points that are not intersections may be freely moved. This will update the constructions that depend on the selected point’s position in real time. Intersections are displayed as small, unfilled circles, while “free” points are rendered as filled (solid color).
  • The camera view may be zoomed or panned.
  • Any construction may be shared via URL: Use the Link button to copy a link. Constructions shared by link can be “replayed” step-by-step using undo/redo.

Hotkeys
1 Point tool (move or construct points)
2 Line tool (construct lines)
3 Circle tool (construct circles)
4 Pan tool (move the view)
Ctrl+Z Undo
Shift+Ctrl+Z Redo

Basic Constructions

Perpendicular Bisector

Given a line-segment AB, construct a line perpendicular to it that passes halfway between A and B.

Angle Bisector

Given an angle, construct the line that cuts it in half.

Orthogonal Projection

Project a point onto a line.

Parallel Offset

A line parallel to the first, passing through a given point.

Distance Transfer

Translate a distance to another point and direction.

Tangent Line

Intersect a circle at only one point.

Triangles

Circumscribe

Given three points that are not colinear, construct a circle that passes through all three.

Inscribe

Given a triangle, construct the largest circle possible inside it.

Escribe

Find the other way to construct a circle that is tangent to three lines.

Functions

Vector Add

Add two vectors in R2\bf{R}^{2}.

Angle Add

Construct one of:

  • The sum of two angles.
  • The differences of two angles.

Multiply

Given concentric circles of radii 11, rr, and ss, construct a fourth concentric circle of radius (rs)(r \cdot s).

Invert

Given concentric circles of radii 11 and rr, construct a third concentric circle of radius 1/r1 / r.

Square Root

Given concentric circles of radii 11 and rr, construct a third concentric circle of radius r\sqrt{r}.

(In)Famous Problems

Try not to spend too much time on these. While it is possible to pass finite-precision unit tests for these problems, I did not even implement them.

Angle Trisector

Given an angle less than π\pi, construct either third of it.

Square the Circle

Construct a square with the same area as a given circle.

Other Resources

If you find this sort of interface and set of problems engaging, you may also enjoy a free-to-play game called Euclidea and a similar web project by Nico Disseldorp. I have no affiliation with either project.