Kosmisk Floræ

Generativ Kunst

Generative aRt
R
Forfatter

Christian Knudsen

Udgivet

14. april 2024

Eller:

library(tidyverse)

Baseret på sommerfugle kurven, der i polære koordinater er defineret ved:

\[ r = \exp^{\sin\theta} - 2\cos(4\theta) + 5 \sin^5(\frac{2\theta - \pi}{24}) \] Det skriver vi en funktion til:

calc <- function(theta){
  exp(sin(theta)) - 2*cos(4*theta) + sin((2*theta - pi ) /24)^5
}

Så prepper vi noget data:

A <- seq(0,12*pi, 0.1)
r <-  calc(A)
B <- seq(0,12*pi, 2.1*pi)
C <- lapply(B, function(x) A - x) %>%  unlist()

A giver os en række tal fra 0 til 12 gange pi. I r har vi så de matchende koordinater der giver sommerfuglekurven. B giver os også en række tal, men med andre step end vi havde i A. Og i C trækker vi værdierne fra B fra værdierne i A - som i, den første værdi i B trækkes fra alle værdier i A, den anden værdi i B trækkes fra alle værdier i A osv. Det giver os grundlæggende en rotation.

Så plotter vi:

tibble(theta = C, r = rep(r, times = length(C)/length(r))) %>% 
    ggplot(aes(x=theta, y = r, color = r, alpha = 0.0001)) +
  geom_point() +
  coord_polar() +
  theme_void()+
  theme(legend.position = "none",
        plot.background = element_rect(fill = "black")) +
  scale_color_gradientn(colours  = c("red", "blue", "green")) 
  ggsave("Kosmisk_Florae-1.png")

Nice.