Versuch, Kreise basierend auf dem Abstand zwischen den Punkten zu zeichnen
-
27-10-2019 - |
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.
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