Documentation

Mathlib.Geometry.Euclidean.NinePointCircle

Nine-point circle #

This file defines the nine-point circle of a triangle, and its higher dimension analogue, the 3(n+1)-point sphere of a simplex. Specifically for triangles, we show that it passes through nine specific points as desired.

Main definitions #

References #

The 3(n+1)-point sphere of a simplex. Due to the lack of a better name and to avoid numbers in the identifier, we still use the name "nine-point circle" even for higher dimensions. The center $N$ is defined on the Euler line, collinear with circumcenter $O$ and centroid $G$, in the order of $O$, $G$, and $N$, with $OG : GN = n : 1$. The radius is $1/n$ of the circumradius.

Equations
Instances For
    theorem Affine.Simplex.ninePointCircle_map {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {V₂ : Type u_3} {P₂ : Type u_4} [NormedAddCommGroup V₂] [InnerProductSpace V₂] [MetricSpace P₂] [NormedAddTorsor V₂ P₂] {n : } (s : Simplex P n) (f : P →ᵃⁱ[] P₂) :
    def Affine.Simplex.eulerPoint {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) (i : Fin (n + 1)) :
    P

    Euler points are a set of points that the ninePointCircle passes through. They are defined as being $1/n$th of the way from the Monge point to a vertex. Specifically for triangles, these are the midpoints between the orthocenter and a given vertex (Affine.Triangle.eulerPoint_eq_midpoint).

    Equations
    Instances For
      @[simp]
      theorem Affine.Simplex.eulerPoint_reindex {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {m n : } (s : Simplex P n) (e : Fin (n + 1) Fin (m + 1)) :
      @[simp]
      theorem Affine.Simplex.eulerPoint_map {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {V₂ : Type u_3} {P₂ : Type u_4} [NormedAddCommGroup V₂] [InnerProductSpace V₂] [MetricSpace P₂] [NormedAddTorsor V₂ P₂] {n : } (s : Simplex P n) (f : P →ᵃⁱ[] P₂) (i : Fin (n + 1)) :
      (s.map f.toAffineMap ).eulerPoint i = f (s.eulerPoint i)
      @[simp]
      theorem Affine.Simplex.eulerPoint_restrict {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) (S : AffineSubspace P) (hS : affineSpan (Set.range s.points) S) (i : Fin (n + 1)) :
      ((s.restrict S hS).eulerPoint i) = s.eulerPoint i
      theorem Affine.Simplex.points_vsub_eulerPoint {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {n : } (s : Simplex P n) (i : Fin (n + 1)) :
      s.points i -ᵥ s.eulerPoint i = ((n - 1) / n) (s.points i -ᵥ s.mongePoint)