2011-06-12 28 views
6

我想畫一些圓圈和我是那種希望他們能有一些點,唉相交之間的距離,以畫圈圈......試圖基於點

library(maptools) 
library(plotrix) 
xy <- matrix(runif(20, min = -100, max = 100), ncol = 2) 
distance <- spDistsN1(xy, xy[1, ]) 
plot(0,0, xlim = c(-100, 100), ylim = c(-100, 100), type = "n") 
points(data.frame(xy)) 
points(xy[1, 1], xy[1, 2], pch = 16) 
draw.circle(xy[1, 1], xy[1, 2], radius = distance) 

上面的代碼執行以下操作:

  • 創建10個隨機點並選擇一個(第一個)點作爲「錨點」。
  • 計算從錨到所有其他點的距離。這將是我們的「半徑」
  • 使用以上計算的半徑距離在錨點周圍繪製圓。
  • 劃傷頭爲什麼圓與用於計算半徑的點不相交。 circles don't intersect with points used to calculate distance

回答

9

這是舊的縱橫比的問題,不時出現時間,當人們正在繪製橢圓形,圓形等

plotMASS::eqscplot編輯:或使用asp=1:請參閱?par)似乎可以解決問題。

+0

向劇情調用添加'asp = 1'也解決了它。 – 2011-06-12 15:23:20

+0

只有當我(在這種情況下)x和y範圍相同時,'asp = 1'纔會起作用(''我認爲'eqscplot'應該稍微更普遍。 – 2011-06-12 15:26:17

+0

我注意到的唯一區別是,當使用'asp = 1'時,比例被保留(圖像按比例增大/縮小),而在'eqscplot'中時,如果調整窗口大小,它會變形。很好找,謝謝! – 2011-06-12 19:01:32