CoherentTransformations logo creation

We first generate 3 different circles for the Julia logo

using Colors: JULIA_LOGO_COLORS
using Luxor
red, green, blue, purple = JULIA_LOGO_COLORS
(red = RGB{N0f8}(0.796,0.235,0.2), green = RGB{N0f8}(0.22,0.596,0.149), blue = RGB{N0f8}(0.251,0.388,0.847), purple = RGB{N0f8}(0.584,0.345,0.698))

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;
nothing #hide

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),
);
nothing #hide

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.