|
cran.r-project.org/web/packages/PlaneGeometry/
github.com/stla/PlaneGeometry
Examples
cran.r-project.org/web/packages/PlaneGeometry/vignettes/examples.html
The Exeter point is defined as follows on Wikipedia.
Let $ABC$ be any given triangle. Let the medians through the vertices $A, B, C$ meet the circumcircle of triangle $ABC$ at $A', B'$ and $C'$ respectively. Let $DEF$ be the triangle formed by the tangents at $A, B,$ and $C$ to the circumcircle of triangle $ABC$. (Let $D$ be the vertex opposite to the side formed by the tangent at the vertex $A$, let $E$ be the vertex opposite to the side formed by the tangent at the vertex $B$, and let $F$ be the vertex opposite to the side formed by the tangent at the vertex $C$.) The lines through $DA', EB'$ and $FC'$ are concurrent. The point of concurrence is the Exeter point of triangle $ABC$.
Let’s construct it with the PlaneGeometry package. We do not need to construct the triangle $DEF$: it is the tangential triangle of ABC, and is provided by the tangentialTriangle method of the R6 class Triangle.
- A <- c(0,2); B <- c(5,4); C <- c(5,-1)
- t <- Triangle$new(A, B, C)
- circumcircle <- t$circumcircle()
- centroid <- t$centroid()
- medianA <- Line$new(A, centroid)
- medianB <- Line$new(B, centroid)
- medianC <- Line$new(C, centroid)
- Aprime <- intersectionCircleLine(circumcircle, medianA)[[2]]
- Bprime <- intersectionCircleLine(circumcircle, medianB)[[2]]
- Cprime <- intersectionCircleLine(circumcircle, medianC)[[1]]
- DEF <- t$tangentialTriangle()
- lineDAprime <- Line$new(DEF$A, Aprime)
- lineEBprime <- Line$new(DEF$B, Bprime)
- lineFCprime <- Line$new(DEF$C, Cprime)
- ( ExeterPoint <- intersectionLineLine(lineDAprime, lineEBprime) )
- #> [1] 2.621359 1.158114
- # check whether the Exeter point is also on (FC')
- lineFCprime$includes(ExeterPoint)
- #> [1] TRUE
复制代码
Let’s draw a figure now.
- opar <- par(mar = c(0,0,0,0))
- plot(NULL, asp = 1, xlim = c(-2,9), ylim = c(-6,7),
- xlab = NA, ylab = NA, axes = FALSE)
- draw(t, lwd = 2, col = "black")
- draw(circumcircle, lwd = 2, border = "cyan")
- draw(Triangle$new(Aprime,Bprime,Cprime), lwd = 2, col = "green")
- draw(DEF, lwd = 2, col = "blue")
- draw(Line$new(ExeterPoint, DEF$A, FALSE, FALSE), lwd = 2, col = "red")
- draw(Line$new(ExeterPoint, DEF$B, FALSE, FALSE), lwd = 2, col = "red")
- draw(Line$new(ExeterPoint, DEF$C, FALSE, FALSE), lwd = 2, col = "red")
- points(rbind(ExeterPoint), pch = 19, col = "red")
复制代码
|
|