Documentation

Mathlib.Geometry.Euclidean.Sphere.SecondInter

Second intersection of a sphere and a line #

This file defines and proves basic results about the second intersection of a sphere with a line through a point on that sphere.

Main definitions #

The second intersection of a sphere with a line through a point on that sphere; that point if it is the only point of intersection of the line with the sphere. The intended use of this definition is when p ∈ s; the definition does not use s.radius, so in general it returns the second intersection with the sphere through p and with center s.center.

Equations
Instances For
    @[simp]
    theorem EuclideanGeometry.Sphere.secondInter_dist {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V) :
    dist (s.secondInter p v) s.center = dist p s.center

    The distance between secondInter and the center equals the distance between the original point and the center.

    @[simp]
    theorem EuclideanGeometry.Sphere.secondInter_mem {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p : P} (v : V) :
    s.secondInter p v s p s

    The point given by secondInter lies on the sphere.

    @[simp]
    theorem EuclideanGeometry.Sphere.secondInter_zero (V : Type u_1) {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) :
    s.secondInter p 0 = p

    If the vector is zero, secondInter gives the original point.

    theorem EuclideanGeometry.Sphere.secondInter_eq_self_iff {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p : P} {v : V} :
    s.secondInter p v = p inner v (p -ᵥ s.center) = 0

    The point given by secondInter equals the original point if and only if the line is orthogonal to the radius vector.

    theorem EuclideanGeometry.Sphere.eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p : P} (hp : p s) {v : V} {p' : P} (hp' : p' AffineSubspace.mk' p (Submodule.span {v})) :
    p' = p p' = s.secondInter p v p' s

    A point on a line through a point on a sphere equals that point or secondInter.

    @[simp]
    theorem EuclideanGeometry.Sphere.secondInter_smul {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V) {r : } (hr : r 0) :
    s.secondInter p (r v) = s.secondInter p v

    secondInter is unchanged by multiplying the vector by a nonzero real.

    @[simp]
    theorem EuclideanGeometry.Sphere.secondInter_neg {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V) :
    s.secondInter p (-v) = s.secondInter p v

    secondInter is unchanged by negating the vector.

    @[simp]
    theorem EuclideanGeometry.Sphere.secondInter_secondInter {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p : P) (v : V) :
    s.secondInter (s.secondInter p v) v = p

    Applying secondInter twice returns the original point.

    theorem EuclideanGeometry.Sphere.secondInter_eq_lineMap {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p p' : P) :
    s.secondInter p (p' -ᵥ p) = (AffineMap.lineMap p p') (-2 * inner (p' -ᵥ p) (p -ᵥ s.center) / inner (p' -ᵥ p) (p' -ᵥ p))

    If the vector passed to secondInter is given by a subtraction involving the point in secondInter, the result of secondInter may be expressed using lineMap.

    theorem EuclideanGeometry.Sphere.secondInter_vsub_mem_affineSpan {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p₁ p₂ : P) :
    s.secondInter p₁ (p₂ -ᵥ p₁) affineSpan {p₁, p₂}

    If the vector passed to secondInter is given by a subtraction involving the point in secondInter, the result lies in the span of the two points.

    theorem EuclideanGeometry.Sphere.secondInter_collinear {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] (s : EuclideanGeometry.Sphere P) (p p' : P) :
    Collinear {p, p', s.secondInter p (p' -ᵥ p)}

    If the vector passed to secondInter is given by a subtraction involving the point in secondInter, the three points are collinear.

    theorem EuclideanGeometry.Sphere.wbtw_secondInter {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p p' : P} (hp : p s) (hp' : dist p' s.center s.radius) :
    Wbtw p p' (s.secondInter p (p' -ᵥ p))

    If the vector passed to secondInter is given by a subtraction involving the point in secondInter, and the second point is not outside the sphere, the second point is weakly between the first point and the result of secondInter.

    theorem EuclideanGeometry.Sphere.sbtw_secondInter {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace V] [MetricSpace P] [NormedAddTorsor V P] {s : EuclideanGeometry.Sphere P} {p p' : P} (hp : p s) (hp' : dist p' s.center < s.radius) :
    Sbtw p p' (s.secondInter p (p' -ᵥ p))

    If the vector passed to secondInter is given by a subtraction involving the point in secondInter, and the second point is inside the sphere, the second point is strictly between the first point and the result of secondInter.