2点之间画线

时间:2013-11-17 19:34:12

标签: r

我想创建一个连接点的几何形状。

2 个答案:

答案 0 :(得分:1)

你可以先做一些数学计算,找出所有顶点的坐标 - 五角星的10点。

然后,您可以使用segment命令或仅使用plot(...,type='l') + polygon(..)来实现此目标。

以下是一些Java hints,向您展示如何计算坐标。

这是一个向您展示这个想法的例子:

plot(c(0,0.5,0,1,1,0), c(0,0.5,1,1,0,0), type="l")
polygon(c(0,0.5,0,1,1,0), c(0,0.5,1,1,0,0), col="grey")

enter image description here

答案 1 :(得分:1)

由于某种原因我还没有抓到,结果会更好... n / ...

star <- function(n){
    x11(width=5, height=5)
v.x <- seq(0, 2*pi - pi/n , length.out=2*n)
v.x[seq(1, length.out=n, by=2)] <- cos(v.x[seq(1, length.out=n, by=2)])
v.x[seq(2, length.out=n, by=2)] <- cos(v.x[seq(2, length.out=n, by=2)])*0.5
v.y <- seq(0, 2*pi, length.out=2*n - 1)
v.y[seq(1, length.out=n, by=2)] <- sin(v.y[seq(1, length.out=n, by=2)])
v.y[seq(2, length.out=n, by=2)] <- sin(v.y[seq(2, length.out=n, by=2)])*0.5
plot(-1:1, -1:1, type="n", axes=FALSE, xlab="", ylab="")
polygon(x=v.x, y=v.y)
}

# par(mfrow=c(3,3))
# for (k in 1:9){
#    star(k*5)
# }
n <- as.numeric(readline(prompt="Enter n corner > ")) ; star(n)

保存脚本然后获取它。这就对了。但是3 - &gt;的明星10个分支看起来很糟糕。希望它会给你一些想法

Commented lines result