2014-04-01 93 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。