2014-04-01 89 views
1

grid.curve函数中是否存在缺陷?对于我的生活,我无法让它画出一个圆弧。有没有解决这个问题?在R中绘制一个圆的圆弧

library(grid) 

plot.new() 
#main viewport 
vp=viewport(x=0.5,y=0.5,width=1, height=1) 
pushViewport(vp) 

#Circle 
grid.circle(x=0.5, y=0.5, r=0.4,default.units="npc") 

#Coordinates for gene 
glength=100000 
start=0 
startrad=(start/glength)*2*pi 
end=20000 
endrad=(end/glength)*2*pi 
length=end-start 

xco1=0.5+0.4*cos(startrad) 
yco1=0.5+0.4*sin(startrad) 
xco2=0.5+0.4*cos(endrad) 
yco2=0.5+0.4*sin(endrad) 


grid.curve(xco1,yco1,xco2,yco2,curvature=arcCurvature((length/glength)*360),ncp=10,gp=gpar(col="blue",lwd=10,lineend=2)) 
+0

究竟是什么问题?使用您的发布代码,我可以绘制一个圆圈和一个圆弧。当然,绘制的圆弧不是绘制的圆,而是与给予'grid.curve'的参数有关,特别是'curvature'参数。 [圈和Arc](https://www.dropbox.com/s/qbp8sezpf2p4hf6/arcofcircle.jpeg) – duHaas

+0

蓝色弧线,是不​​完全的圆弧。改变开始和结束参数可以创造出类似弧形的东西。使用arcCurvature函数设置曲率参数应该创建一个精确覆盖圆的完美弧。 – user3246796

+1

我认为你需要'平方= FALSE'在最终'grid.curve'打电话得到真正的弧线,我会仔细检查,以确保您的开始/结束点是正确的。 – hrbrmstr

回答

1

谢谢。答案是包含参数square = F。