# # 円,円弧,扇形を描く関数群 # # 2008-02-28 by TAKENAKA, A. # 円を描く circle <- function(x, y, r = 1, color = 1, color.fill = 0, lwd = 1, by = 10) { center.x <- x center.y <- y x.array <- c() y.array <- c() for (i in seq(0, 360, by = by)) { d <- 3.14159 * i / 180 x.array <- c(x.array, sin(d)) y.array <- c(y.array, cos(d)) } x.array <- r * x.array + center.x y.array <- r * y.array + center.y polygon(x.array, y.array, co = color.fill) lines(x.array, y.array, co = color, lwd = lwd) } ################### # # 円弧を描く arc <- function(x, y, r = 1, start = 0, end = 180, color = 1, lwd = 1) { center.x <- x center.y <- y x.array <- c() y.array <- c() deg.by <- (end - start) / 36 if (start > end) { deg.by <- -deg.by } for (i in seq(start, end, by = deg.by)) { d <- 3.14159 * i / 180 x.array <- c(x.array, sin(d)) y.array <- c(y.array, cos(d)) } x.array <- r * x.array + center.x y.array <- r * y.array + center.y lines(x.array, y.array, co = color, lwd = lwd) } ################### # # 扇形を描く fan <- function(x, y, r = 1, start = 0, end = 180, color = 1, color.fill = 0, lwd = 1) { center.x <- x center.y <- y x.array <- c(center.x) y.array <- c(center.y) deg.by <- (end - start) / 36 if (start > end) { deg.by <- -deg.by } for (i in seq(start, end, by = deg.by)) { d <- 3.14159 * i / 180 x.array <- c(x.array, sin(d)) y.array <- c(y.array, cos(d)) } x.array <- c(x.array, center.x) y.array <- c(y.array, center.y) x.array <- r * x.array + center.x y.array <- r * y.array + center.y polygon(x.array, y.array, co = color.fill) lines(x.array, y.array, co = color, lwd = lwd) }