1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
arctext<-function(x,center=c(0,0),radius=1,start=NA,middle=pi/2,
stretch=1,cex=1,...) {
oldcex<-par("cex")
par(cex=cex)
xvec<-strsplit(x,"")[[1]]
lenx<-length(xvec)
xwidths<-stretch*strwidth(xvec)
charangles<-xwidths/radius
changrang<-range(charangles)
if(changrang[2]/changrang[1] > 2)
charangles[charangles < changrang[2]/2]<-changrang[2]/2
if(is.na(start)) start<-middle+sum(xwidths)/(radius*2)
charpos<-c(start,start-cumsum(charangles)[-lenx])
xylim <- par("usr")
plotdim <- par("pin")
ymult <- (xylim[4] - xylim[3])/(xylim[2] - xylim[1]) * plotdim[1]/plotdim[2]
for(xchar in 1:lenx)
text(center[1]+radius*cos(charpos[xchar]),
center[2]+radius*sin(charpos[xchar])*ymult,xvec[xchar],
adj=c(0.5,0.5),srt=180*(charpos[xchar]-middle)/pi,...)
par(cex=oldcex)
}
|