0

我很难产生一个圆的 X,Y 坐标,然后画线段。基本上我想做的是以完美的间距从圆心到圆外绘制 360 条线。这就是我目前的做法,但它不起作用。如果有不同的方法可以做到这一点,那也很好!我也希望 0 度从圆圈的左侧开始。

t <- seq(0,2*pi,length=360) 
coords <- t(rbind( sin(t)*127.28125, cos(t)*127.28125)) 
plot(coords,type='n',xlim=c(-63.625625,63.625625),ylim=c(0,127.28125)) 
lines(coords)

deg=data.frame(coords[,1],coords[,2])
head(deg)
deg$count=1
deg$degree=1

for(i in 1:nrow(coords)){
if(deg$count[i]<=270){
deg$degree[i]=i-1+90-45
} else {
deg$degree[i]=i-1-270-45
}
}

names(deg)[1] <- "X"
names(deg)[2] <- "Y"

i=1
for(i in 1:19){
segments(0,0,deg$X[deg$degree==((5*(i-1)))],deg$Y[deg$degree==((5*(i-1)))])
cat(((5*(i-1))),'\t')
}

更新:

我在画线的地方遇到了一些问题。基本上,当我们绕着圆圈走时,误差会变大,所以当 pi/2 弧度发生并且它是直线向上时,该值稍微偏右 x=0。这可能无法获得,但我想我会问是否有办法解决这个问题!45 90 和 135 应该都在行上匹配。

图形

4

1 回答 1

2

这个怎么样

th <- seq(0, 2*pi, length.out=360)
r <- 2
x <- r*cos(th)
y <- r*sin(th)

plot(x,y, type="n")
segments(0,0,x,y)

基本上我选择thr在极地空间并转换为笛卡尔。

在此处输入图像描述

如果你想从左边的 0 开始,使用

    x <- -r*cos(th)

反而。

于 2015-03-03T19:05:56.673 回答