scratch/polygon_experiments.R

# Cracking TLP's flowing feilds

library(tidyverse)
library(ambient)

perlin_circles <- function(cx, cy, n, noise_max, octaves, r_min, r_max, seed){
  if(is.null(seed)){
    seed <- ambient:::random_seed()
  }

  tibble(
    angle = seq(0, 2*pi, length.out = n),
    xoff = scales::rescale(cos(angle), from = c(-1, 1), to = c(0, noise_max)),
    yoff = scales::rescale(sin(angle), from = c(-1, 1), to = c(0, noise_max)),
    r = scales::rescale(ambient::fracture(gen_simplex, fbm, x = xoff, y = yoff, octaves = 2, seed=seed),
                        from = c(-0.5, 0.5), to = c(r_min, r_max)),
    x = r * cos(angle)+ cx,
    y = r * sin(angle)+ cy
  )
}


df <- perlin_circles(c(-5:5),c(-5:5), 1000, 0, 0, 1, 1, seed = 42)

df2 <- perlin_circles(c(-5:5),c(5:(-5)), 1000, 0, 0, 1, 1, seed = 42)

df3 <- perlin_circles(c(-5:3), c(0:3), 100000, 0, 0, 1, 1, seed = 42)

test <- perlin_circles(c(0:3),c(1:4), 100000, 3, 10, 1, 5, seed = 42)

test %>%
  mutate(
    layer1 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .25,
      fractal = "billow",
      octaves = 5,
      pertubation = "fractal"
      ),
    layer2 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .5,
      fractal = "billow",
      octaves = 10,
      pertubation = "fractal"
      )*layer1,
    layer3 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .75,
      fractal = "billow",
      octaves = 10,
      pertubation = "fractal"
    )*layer2,
    layer4 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .80,
      fractal = "billow",
      octaves = 10,
      pertubation = "fractal"
    )*layer3,
    ) %>%
  ggplot()+
  geom_polygon(aes(x+cos(45)*layer4,y+sin(45)*layer4, fill = "layer4"), alpha =.25)+
  geom_polygon(aes(x+cos(45)*layer3,y+sin(45)*layer3, fill = "layer3"), alpha =.25)+
  geom_polygon(aes(x+cos(45)*layer2,y+sin(45)*layer2, fill = "layer2"), alpha =.25)+
  geom_polygon(aes(x+cos(45)*layer1,y+sin(45)*layer1, fill = "layer1"), alpha =.25)+
  theme_canvas("black")+
  delabj::scale_fill_delabj("retro",reverse = TRUE)+
  coord_cartesian(ylim=c(1,7), xlim=c(-1.5, 8))

ggsave("ice.png", height = 10, width =10, units = "in", device = ragg::agg_png(), dpi = 320)



test %>%
  mutate(
    layer1 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .25,
      fractal = "billow",
      octaves = 5,
      pertubation = "fractal"
    ),
    layer2 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .5,
      fractal = "billow",
      octaves = 10,
      pertubation = "fractal"
    )*layer1,
    layer3 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .75,
      fractal = "billow",
      octaves = 10,
      pertubation = "fractal"
    )*layer2,
    layer4 = ambient::gen_perlin(
      x,y, seed = 42,
      frequency = .80,
      fractal = "billow",
      octaves = 10,
      pertubation = "fractal"
    )*layer3,
  ) %>%
  ggplot()+
  geom_tile(aes(x+cos(45)*layer4,y+sin(45)*layer4, fill = "layer4"), alpha =.25, interpolate = TRUE)+
  geom_tile(aes(x+cos(45)*layer3,y+sin(45)*layer3, fill = "layer3"), alpha =.25, interpolate = TRUE)+
  geom_tile(aes(x+cos(45)*layer2,y+sin(45)*layer2, fill = "layer2"), alpha =.25, interpolate = TRUE)+
  geom_tile(aes(x+cos(45)*layer1,y+sin(45)*layer1, fill = "layer1"), alpha =.25, interpolate = TRUE)+
  theme_canvas("black")+
  delabj::scale_fill_delabj("retro",reverse = TRUE)+
  coord_cartesian(ylim=c(1,7), xlim=c(-1.5, 8))
delabj/genArt documentation built on March 25, 2021, 11:56 p.m.