Frage

Ich versuche ein paar Kreise zu zeichnen und hoffte, dass sie sich mit einigen Punkten kreuzen, leider ...

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)

Der obige Code erledigt Folgendes:

  • Erstellen Sie 10 zufällige Punkte und wählen Sie einen (ersten) Punkt, der als "Anker" dienen würde.
  • Berechnen Sie den Abstand vom Anker zu allen anderen Punkten. Dies wird unser "Radius" sein
  • Zeichnen Sie Kreise um den Ankerpunkt mit oben berechneten Abständen für Radien.
  • Kratzkopf, warum Kreise nicht mit Punkten überschneiden, die zur Berechnung von Radien verwendet wurden.circles don't intersect with points used to calculate distance
War es hilfreich?

Lösung

Dies ist das Problem des alten Seitenverhältnisses, das von Zeit zu Zeit auftaucht, wenn Menschen Ellipsen, Kreise usw. zeichnen.

Ersetzen MASS::eqscplot zum plot (bearbeiten: oder verwenden asp=1: sehen ?par) scheint das Problem zu lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top