CoherentTransformations logo creation
We first generate 3 different circles for the Julia logo
using Colors: JULIA_LOGO_COLORS, ARGB32, RGBA
using ImageShow
using MosaicViews: mosaicview
using Luxor
red, green, blue, purple = JULIA_LOGO_COLORS;We create for images 200x200 containing each a disk
circles = map((red, green, purple)) do color
    buffer = zeros(ARGB32, 200, 200)
    Drawing(buffer)
    setcolor(color)
    circle(Point(100, 100), 90; action=:fill)
    finish()
    buffer
end;
mosaicview(map(x->RGBA.(x), circles); nrow=1)Let's warp each disk with a different warping
warped_circles = (
    checker_warp(circles[1]; crop=false),
    ridged_warp(circles[2]; crop=false, scaling=2.0),
    cylinder_warp(circles[3]; crop=false, scaling=0.05),
);
mosaicview(map(x->RGBA.(x), warped_circles); nrow=1)We can now assemble all the images together in on polygon.
Drawing(500, 500, "logo.png")
points = ngon(Point(250, 280), 150, 3, pi / 6; vertices=true)
for i in 1:3
    placeimage(warped_circles[i], points[i] .- 100)
end
finish()
preview()Tada! 
This page was generated using Literate.jl.