| Inversion | R Documentation |
An inversion is given by a pole (a point) and a power (a number, possibly negative, but not zero).
poleget or set the pole
powerget or set the power
new()Create a new Inversion object.
Inversion$new(pole, power)
polethe pole
powerthe power
A new Inversion object.
print()Show instance of an inversion object.
Inversion$print(...)
...ignored
Inversion$new(c(0,0), 2)
invert()Inversion of a point.
Inversion$invert(M)
Ma point or Inf
A point or Inf, the image of M.
transform()An alias of invert.
Inversion$transform(M)
Ma point or Inf
A point or Inf, the image of M.
invertCircle()Inversion of a circle.
Inversion$invertCircle(circ)
circa Circle object
A Circle object or a Line object.
# A Pappus chain
# https://www.cut-the-knot.org/Curriculum/Geometry/InversionInArbelos.shtml
opar <- par(mar = c(0,0,0,0))
plot(0, 0, type = "n", asp = 1, xlim = c(0,6), ylim = c(-4,4),
xlab = NA, ylab = NA, axes = FALSE)
A <- c(0,0); B <- c(6,0)
ABsqr <- c(crossprod(A-B))
iota <- Inversion$new(A, ABsqr)
C <- iota$invert(c(8,0))
Sigma1 <- Circle$new((A+B)/2, sqrt(ABsqr)/2)
Sigma2 <- Circle$new((A+C)/2, sqrt(c(crossprod(A-C)))/2)
draw(Sigma1); draw(Sigma2)
circ0 <- Circle$new(c(7,0), 1)
iotacirc0 <- iota$invertCircle(circ0)
draw(iotacirc0)
for(i in 1:6){
circ <- circ0$translate(c(0,2*i))
iotacirc <- iota$invertCircle(circ)
draw(iotacirc)
circ <- circ0$translate(c(0,-2*i))
iotacirc <- iota$invertCircle(circ)
draw(iotacirc)
}
par(opar)
transformCircle()An alias of invertCircle.
Inversion$transformCircle(circ)
circa Circle object
A Circle object or a Line object.
invertLine()Inversion of a line.
Inversion$invertLine(line)
linea Line object
A Circle object or a Line object.
transformLine()An alias of invertLine.
Inversion$transformLine(line)
linea Line object
A Circle object or a Line object.
invertGcircle()Inversion of a generalized circle (i.e. a circle or a line).
Inversion$invertGcircle(gcircle)
gcirclea Circle object or a Line object
A Circle object or a Line object.
compose()Compose the reference inversion with another inversion. The result is a Möbius transformation.
Inversion$compose(iota1, left = TRUE)
iota1an Inversion object
leftlogical, whether to compose at left or at right (i.e.
returns iota1 o iota0 or iota0 o iota1)
A Mobius object.
clone()The objects of this class are cloneable with this method.
Inversion$clone(deep = FALSE)
deepWhether to make a deep clone.
inversionSwappingTwoCircles,
inversionFixingTwoCircles,
inversionFixingThreeCircles to create some inversions.
## ------------------------------------------------
## Method `Inversion$print`
## ------------------------------------------------
Inversion$new(c(0,0), 2)
## ------------------------------------------------
## Method `Inversion$invertCircle`
## ------------------------------------------------
# A Pappus chain
# https://www.cut-the-knot.org/Curriculum/Geometry/InversionInArbelos.shtml
opar <- par(mar = c(0,0,0,0))
plot(0, 0, type = "n", asp = 1, xlim = c(0,6), ylim = c(-4,4),
xlab = NA, ylab = NA, axes = FALSE)
A <- c(0,0); B <- c(6,0)
ABsqr <- c(crossprod(A-B))
iota <- Inversion$new(A, ABsqr)
C <- iota$invert(c(8,0))
Sigma1 <- Circle$new((A+B)/2, sqrt(ABsqr)/2)
Sigma2 <- Circle$new((A+C)/2, sqrt(c(crossprod(A-C)))/2)
draw(Sigma1); draw(Sigma2)
circ0 <- Circle$new(c(7,0), 1)
iotacirc0 <- iota$invertCircle(circ0)
draw(iotacirc0)
for(i in 1:6){
circ <- circ0$translate(c(0,2*i))
iotacirc <- iota$invertCircle(circ)
draw(iotacirc)
circ <- circ0$translate(c(0,-2*i))
iotacirc <- iota$invertCircle(circ)
draw(iotacirc)
}
par(opar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.