Learning Compose.
Trying the code below to rotate images.
The rotate function seems to work on the line-drawn "V" but not on the
colored checker box.
How do I fix this so the rotate function works for drawings like the
checker box?
Some outputs attached.
Thank you for your advice.
********
using Compose
using Color
# draw a black box
function blackbox()
compose(context(), rectangle(), fill("black"))
end
# draw a blue box
function bluebox()
compose(context(), rectangle(), fill("lightblue"))
end
# join pic2 to pic1 horizontally
function hsplice(pic1, pic2)
compose(context(), compose(context(0.0, 0.0, 0.5, 1.0), pic1),
compose(context(0.5, 0.0, 0.5, 1.0), pic2))
end
# join pic2 to pic1 vertically
function vsplice(pic1, pic2)
compose(context(), compose(context(0.0, 0.0, 1, 0.5), pic1),
compose(context(0.0, 0.5, 1, 0.5), pic2))
end
# rotate pic counter-clockwise 90 degrees
function rotate(pic)
compose(context(rotation=Rotation(-pi/2)), pic)
end
# draw a checker pattern
function checker(p1, p2)
compose(vsplice(hsplice(p1, p2),
hsplice(p2, p1)))
end
# cpic is a blue and black checker picture
cpic = checker(bluebox(), blackbox())
# cimg receives cpic
cimg = SVG("cpic.svg", 8cm, 8cm)
# draw cpic to cimg
draw(cimg, cpic)
#rotate checker:
rpic = rotate(cpic)
rimg = SVG("rpic.svg", 8cm, 8cm)
draw(rimg, rpic)
# check rotate function:
# points to draw a "V"
Vpoints = [ (0.2, 0),
(0.5, 1),
(0.8, 0) ]
# draw a V:
vpic = compose(context(), stroke("black"), line(Vpoints))
# file for "V" drawing:
vimg = SVG("vimg.svg", 8cm, 8cm)
# draw vimg:
draw(vimg, vpic)
# rotate vpic:
rvpic = rotate(vpic)
rvimg = SVG("rvimg.svg", 8cm, 8cm)
draw(rvimg, rvpic)