Chita is a typical colourful floral pattern from Brazil.
https://fredericmagazine.com/2020/09/chita-bonita-textile-brazil/
As part of an exhibition focused on this style, I live-coded some patterns inspired by real examples, using Patterning. Here's one example.
(defn add-style [new-style {:keys [style points]}]
{:points points :style (conj style new-style)})
(defn bez-curve [style points]
(add-style {:bezier true} (->SShape style points )))
(defn petal-group [style dx dy]
(let [ep [0 0]] [
(bez-curve style [ep [(- dx) (- dy)]
[(- (* -2 dx) dx) (- dy)] ep])]))
(defn petal-pair-group "reflected petals" [style dx dy]
(let [petal (petal-group style dx dy)]
(stack petal ( h-reflect petal))))
(let [blue {:fill (p-color 150 150 255)
:stroke (p-color 50 50 255)
:stroke-weight 2}
yellow {:fill (p-color 180 250 50)
:stroke-weight 1
:stroke (p-color 150 120 20)}
green {:fill (p-color 20 100 30)}
rand-rot
#(rotate (* (mod (rand-int 100) 8) (/ PI 4)) %)
inner (stack
(poly 0 0 0.3 12 {:fill (p-color 50 50 220)
:stroke-weight 0})
(->> (poly 0 0.1 0.06 5 yellow)
(clock-rotate 5)
(translate -0.09 -0.07)
))
flower
(stack
(clock-rotate 15 (petal-group blue 0.3 0.8 ))
(let [y-stream
(clock-rotate 15 (petal-group yellow 0.3 0.8 ))]
(stack (list (nth y-stream 5))
(take 2 y-stream)
))
inner)
leafy
(fn [n]
(stack
(->> (diamond green)
(stretch 0.5 0.25)
(translate -0.6 0)
(clock-rotate 4)
(drop 2)
(take n))
(->> (diamond
{:fill (p-color 200 255 200)
:stroke-weight 0})
(stretch 0.2 0.1)
(translate -0.6 0)
(clock-rotate 4)
(drop 2)
(take n))
flower))
whites
(stack
(->>
(poly 0 0.3 0.2 5
{:fill (p-color 255 255 255)
:stroke-weight 0})
(clock-rotate 7))
(poly 0 0 0.2 8 {:fill (p-color 0 0 200)}))
small-yellow
(let [all (->> (diamond yellow)
(stretch 0.4 0.5)
(translate 0 -0.6 )
(clock-rotate 5)
(scale 0.6 ))
blues (over-style blue all)]
(stack
all
(list (nth blues 0))
(list (nth blues 2))))
leafy-seq (->>
(iterate (fn [x] (+ 1 (mod (rand-int 100) 2))) 0)
(map leafy)
(map rand-rot))
]
(stack
(square {:fill (p-color 255 10 10)})
(half-drop-grid-layout
17 (map rand-rot
(map rand-nth
(repeat [whites []
small-yellow small-yellow ]))))
(half-drop-grid-layout 6 leafy-seq)))