Euclidean geometry

Basic

  • Line at infinity

  • Two special points and on play an important role in Euclidean Geometry:

    • ,
  • If we choose another line as line of infinity

Rational Trigonometry in Euclidean geometry

Notations

  • To distinguish with Euclidean geometry, points are written in capital letters.

Quadrance and Spread in Euclidean geometry

  • The quadrance between points and is:

  • The spread between lines and is:

  • The cross between lines and is:

Triple formulate

  • Let , and are points with , and . Let , and are lines with , and .

  • Theorem (Triple quad formula): If , and are collinear points then

  • Theorem (Triple spread formula): If , and are concurrent lines then

Spread Law

  • Suppose that triangle form quadrances , and , and it dual trilateral form spreads , and . Then:

  • Theorem (Spread Law)

  • (Compare with the sine law in Euclidean Geometry):

Cross Law

  • Theorem (Cross law)

  • (Compare with the Cosine law)

Right triangles and Pythagoras

  • Suppose that is a right triangle with . Then

  • Theorem (Thales)

  • Theorem (Pythagoras)

Archimedes' function

  • Archimedes' function

  • Non-symmetric but more efficient version:

Theorems

  • Theorem (Archimedes' formula): If , and , then =

Theorems (cont'd)

  • Theorem: As a quadratic equation in , the TQF can be rewritten as:

  • Theorem: The quadratic equations and has a common solutions iff

Heron's formula (Hero of Alexandria 60BC)

  • The area of a triangle with side lengths is where is the semi-perimeter.

Heron's formula{#fig:heron}

Archimedes' theorem

  • The area of a planar triangle with quadrances is given by

  • Note: Given . The area is maximum precisely when .

Brahmagupta's formula (convex)

  • Brahmagupta's theorem: where

  • Preferred form: =

Quadratic compatibility theorem

  • Two quadratic equations are compatible iff or

  • In this case, if then there is a unique sol'n:

Quadruple Quad Formula

  • Quadruple Quad Formula

  • Note that

    can be computed efficiently as:

Brahmagupta's formula

  • Brahmagupta's formula (convex): =

  • Robbin's formula (non-convex): =

  • Brahmagupta's identity

Cyclic quadrilateral quadrea theorem

where

Ptolemy's theorem & generalizations

  • Claudius Ptolemy: 90-168 A.D. (Alexandria) Astronomer & geographer & mathematician

  • Ptolemy's theorem If is a cyclic quadrilateral with the lengths and diagonal lengths , then [Actually needs convexity!]

Ptolemy's theorem

{#fig:Ptolemy}

Exercise

  • Ex. , , ,

  • Then the quadrances are:

  • The diagonal quadrances are:

Ptolemy's theorem (rational version)

  • Ptolemy's theorem (rational version): If _ is a cyclic quadrilateral with quadrances then

  • Ex. For , , , with

  • we can verify directly that .

  • Note that with the rational form of Ptolemy's theorem, the three quantities appear symmetrically: so convexity of the cyclic quadrilateral is no longer required!

Proof of Ptolemy's theorem

Sketch of the proof:

  • Without loss of generality, we can assume that the circle is a unit circle.
  • Recall that a point on a unit circle can be parameterized as: where and are not both zero.
  • Let .
  • Express in terms of 's and 's
  • Express in terms of 's and 's.
  • Simplify the expression and derive that it is equal to 0. (we may use the Python's symbolic package for the calculation. It took about 8 minutes on my computer :-)

🐍 Python Code

import numpy as np
from fractions import *
from proj_geom import *

def quad1(x1, z1, x2, z2):
    if isinstance(x1, int):
        return (Fraction(x1,z1) - Fraction(x2,z2))**2
    else:
        return (x1/z1 - x2/z2)**2

def quadrance(a1, a2):
    return quad1(a1[0], a1[2], a2[0], a2[2]) + \
            quad1(a1[1], a1[2], a2[1], a2[2])

def uc_point(lambda1, mu1):
    return pg_point([lambda1**2 - mu1**2,
                2*lambda1*mu1, lambda1**2 + mu1**2])

def Ar(a, b, c):
    ''' Archimedes's function '''
    return (4*a*b) - (a + b - c)**2

🐍 Python Code

if __name__ == "__main__":
    import sympy
    sympy.init_printing()

    lambda1, mu1 = sympy.symbols("lambda1 mu1", integer=True)
    lambda2, mu2 = sympy.symbols("lambda2 mu2", integer=True)
    lambda3, mu3 = sympy.symbols("lambda3 mu3", integer=True)
    lambda4, mu4 = sympy.symbols("lambda4 mu4", integer=True)
    a1 = uc_point(lambda1, mu1)
    a2 = uc_point(lambda2, mu2)
    a3 = uc_point(lambda3, mu3)
    a4 = uc_point(lambda4, mu4)
    q12 = quadrance(a1, a2)
    q23 = quadrance(a2, a3)
    q34 = quadrance(a3, a4)
    q14 = quadrance(a1, a4)
    q24 = quadrance(a2, a4)
    q13 = quadrance(a1, a3)
    t = Ar(q12*q34, q23*q14, q13*q24)
    t = sympy.simplify(t)
    print(t) # get 0

Backup

>  pandoc -t latex -F pandoc-crossref -o temp2.svg .\01proj_geom.md .\02ck_geom.md .\03RT.md .\04RT_2.md latex.yaml .\crossref.yaml
>  pandoc -t beamer -F pandoc-crossref -o temp2.svg .\01proj_geom.md .\02ck_geom.md .\03RT.md .\04RT_2.md beamer.yaml .\crossref_2.yaml