http://d.hatena.ne.jp/ryamada/20110709 のプログラム
もとのプログラムは,読みにくいこともさることながら,無駄なことをやっている。以下のように簡単になる。
## hyperbolic disk
t <- seq(0, 2*pi, length=100)
xc <- cos(t)
yc <- sin(t)
r <- tan(seq(from=0, to=pi/2, length=10))[-1]
func <- function(ox, oy, or) # 円を描く関数
{
lines(ox+xc*or, oy+yc*or)
}
plot(0, 0, type="n", xlim=c(-1.5, 3), ylim=c(-1.5, 3), asp=1)
func(0, 0, 1)
sapply(c(r, -r), function(or) func(1, or, or))
abline(h=0)
短いプログラムはたいてい速い。案の定,元のプログラムの8倍ほど速くなっている。