裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ダメ出し:双曲線幾何の直線その2

2011年10月24日 | ブログラミング

http://d.hatena.ne.jp/ryamada/20110713 のプログラムも読みにくく,効率が悪い。しかも途中で負数の平方根を求めるということになるのが不都合。

下のように書き直せば,100倍ほど速くなる。

func <- function(ox, oy, or) # 円を描く関数
{
     lines(ox+xc*or, oy+yc*or)
}
r1 <- 1
x2 <- 1.5
y2 <- 0
r2 <- 2
t <- seq(0, 2*pi, length=200)
xc <- cos(t)
yc <- sin(t)
plot(0, 0, type="n", xlim=c(-1.98, 3.5), ylim=c(-1.98, 3.5), asp=1)
func(x1, y1, r1)
func(x2, y2, r2)
k <- (x2^2+r1^2-r2^2)/(2*x2*xc)
r3 <- k^2-r1^2
mapply(function(x, y, z) if(z > 0) func(x*cos(y), x*sin(y), sqrt(z)), k, t, r3)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ダメ出し:双曲線幾何の直線 | トップ | ダメ出し:正八面体タイル »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事