Beta2Origin {conformal} | R Documentation |
Moebius transformations to map the unit circle to the unit circle and a point
beta
to the origin, or vice versa.
Beta2Origin(z, beta) Origin2Beta(z, beta) RBeta2Origin(x, x0) ROrigin2Beta(x, x0) matrixBeta2Origin(x, x0) matrixOrigin2Beta(x, x0)
z |
a complex vector of points to transform. |
beta |
a complex vector of length 1. The (pre)image of the origin. |
x |
real vector or matrix representation of |
x0 |
real vector representation of |
The Moebius transform z -> (beta+z)/(1+Conj(beta)z) maps the unit disk to
itself and the point beta
to the origin. This is implemented in Beta2Origin
;
the reverse transformation is Origin2Beta
. In the versions RBeta2Origin
and ROrigin2Beta
, the input and output use the real representation of complex values (see C2R
).
In the versions matrixBeta2Origin
and matrixOrigin2Beta
, the input
and output use the two-column matrix representation.
For Beta2Origin
and Origin2Beta
the transformed complex vector.
For RBeta2Origin
and ROrigin2Beta
the real representation of the
transformed complex vector. For matrixBeta2Origin
and matrixOrigin2Beta
,
the two-column matrix representation of the transformed complex vector.
Nick Ellis, nick.ellis@csiro.au
CircleGrid <- function(nradial) { # create a random pattern to fill a disk r <- seq(0,1,len=nradial) nth <- pmax(1,ceiling(2*pi*r*(nradial-1))) th0 <- runif(nth,-pi/nth,pi/nth) list( x=unlist(lapply(1:nradial, function(i,r,nth,th0) r[i]*cos(th0[i]+seq(0,2*pi,len=nth[i]+1)[-nth[i]-1]),r=r,nth=nth,th0=th0)), y=unlist(lapply(1:nradial, function(i,r,nth,th0) r[i]*sin(th0[i]+seq(0,2*pi,len=nth[i]+1)[-nth[i]-1]),r=r,nth=nth,th0=th0)) ) } cDisk <- R2C(listxy2R(CircleGrid(30))) centre <- R2C(c(0.5,-0.1)) cPred <- Origin2Beta(cDisk, centre) cols <- hsv(h=Arg(cDisk)/2/pi+0.5,s=pmin(1,Mod(cDisk))) par(mfrow=c(1,2)) plot(cDisk, col=cols, asp=1, pch=16, main="Colour wheel") plot(cDisk, type='n', asp=1, main="Moebius transformation") points(cPred, col=cols,pch=16) points(centre, pch=4)