Wielokąt wpisany w siatkę okręgów - R

0

Cześć,

Potrzebuję porady jak narysować wielokąt wpisany w siatkę okręgów - coś podobnego do wykresu radarowego. Poniżej mam jak na razie funkcję, dzięki której mogę narysować kilka okręgów i wielokąt w jednym układzie współrzędnych. Chciałbym teraz uzależnić liczbę okręgów oraz liczbę wierzchołków wielokąta od danych wejściowych oraz odpowiednio je rozłożyć w jednym układzie współrzędnych.

screenshot-20220117210432.png

# przykładowy wektor ustalający liczbę wierzchołków wielokąta oraz liczbę okręgów
v1 <- 1:6

wielokat <- function(N=7, R=1, density=NA, col=rgb(1, 0, 0, 0.5), lty=2, lwd=1){
  
  if(N>=3){
    alpha <- c(0, 2*pi*(1:N)/N)
    x <- R*cos(alpha)
    y <- R*sin(alpha)
  
  if(length(dev.list())==0){
    plot(x, y, type="n")
  }
  polygon(x, y, col=col, density=density, border=NA)
  lines(x, y, lty=lty, lwd=lwd, col=col)
  }
}

wielokat(N=100, R=10, density=10, col=rgb(0, 0, 1, 0.4), lty=2, lwd=1)
wielokat(N=100, R=8, density=10, col=rgb(0, 0, 1, 0.4), lty=2, lwd=1)
wielokat(N=100, R=6, density=10, col=rgb(0, 0, 1, 0.4), lty=2, lwd=1)
wielokat(N=5, density=10, col=rgb(0, 0, 1, 0.4), lty=2, lwd=1)
0
# przykładowy wektor ustalający liczbę wierzchołków wielokąta oraz liczbę okręgów
v1 <- 1:6

Oznacza on:

1 2 3 4 5 6

Musisz w pętli podstawiać wartości z v1 pod N:

for (value in v1) {
    wielokat(N=value, R=value, density=10, col=rgb(0, 0, 1, 0.4), lty=2, lwd=1)
}

Ale to pewnie nie załatwia problemu do końca... (albo w ogóle...)


Liczba okręgów == Liczba wierzchołków == Liczba linii == N

  1. Każdy okrąg ma promień:
  • R * 1..N / N.
  1. Każda linia ma koniec
  • (R * cos(2PI * 0..N-1 / N), R * sin(2PI * 0..N-1 / N)).
  1. Każdy kolejny wierzchołek jest coraz bardziej oddalony od środka, więc ma współrzędne
  • (R * 1..N / N * cos(2PI * 0..N-1 / N), R * 1..N / N * sin(2PI * 0..N-1 / N)).

1 użytkowników online, w tym zalogowanych: 0, gości: 1