Code Sketch
Tangram
Category: Art
cleari
//showAxes()
//showGrid()
def darkGreen = Color(0, 84, 33)
def skyBlue = Color(0, 218, 221, 201)
def shape3 = Picture {
right(135)
forward(70.71)
right(90)
forward(70.71)
right(90)
forward(70.71)
right(90)
forward(70.71)
right(90)
}.thatsStrokeColored(black).thatsFilledWith(darkGreen)
def shape4 = Picture {
right()
forward(100)
left(135)
forward(70.71)
left(90)
forward(70.71)
}.thatsStrokeColored(black).thatsFilledWith(orange)
def shape1 = Picture {
right(135)
forward(141.42)
left(135)
forward(200)
left(135)
forward(141.42)
}.thatsStrokeColored(black).thatsFilledWith(yellow)
def shape5 = Picture {
left(45)
forward(70.71)
left(135)
forward(100)
left(135)
forward(70.71)
}.thatsStrokeColored(black).thatsFilledWith(purple)
def shape6 = Picture {
forward(100)
right(135)
forward(70.71)
right(45)
forward(100)
right(135)
forward(70.71)
}.thatsStrokeColored(black).thatsFilledWith(green)
def shape7 = Picture {
left(45)
forward(141.42)
left(135)
forward(100)
left(90)
forward(100)
}.thatsStrokeColored(black).thatsFilledWith(skyBlue)
def fish = picStack(
Picture {},
shape1.thatsRotated(135).thatsFilledWith(red),
shape1.thatsRotated(-135),
shape3.thatsRotated(45).thatsTranslated(0, 35.35),
shape5.thatsRotated(-45).withFlippedX.thatsTranslated(0, 35.35),
shape4.thatsRotated(45).thatsTranslated(0, -(70.71+35.35)) ,
shape6.withFlippedY.thatsRotated(45).thatsTranslated(0, -35.35).thatsTranslated(70.71,0),
shape7.thatsRotated(-45).thatsTranslated(0,-141.42).thatsTranslated(70.71,70.71).thatsTranslated(70.71, 35.35)
)
def bird = picStack(
Picture {},
shape5.thatsRotated(-45).withFlippedX,
shape6.withFlippedX.thatsTranslated(0, -(100-70.71)),
shape3.thatsTranslated(0, -(100-70.71)),
shape4.thatsRotated(-90).withFlippedX.thatsTranslated(50,-(50+(100-70.71))),
shape7.withFlippedX.thatsRotated(45).withFlippedY.thatsTranslated(-50, -(100-70.71+50)),
shape1.thatsRotated(45).withFlippedX.thatsTranslated(0,-((100-70.71)+50+141.42)).thatsTranslated(-50, 0).thatsFilledWith(red),
shape1.thatsRotated(90).thatsTranslated(0,-((100-70.71)+100+50)).thatsTranslated(-150, 0)
)
def tree = picStack(
Picture {},
shape7.thatsRotated(45).withFlippedY.thatsTranslated(70.71, 100),
shape1.thatsRotated(90).withFlippedY.thatsTranslated(0,100),
shape5.thatsRotated(-90).thatsTranslated(0,-50),
shape4.thatsTranslated(0, -50),
shape6.thatsRotated(-90).withFlippedX.thatsTranslated(100,-50),
shape1.thatsRotated(-90).thatsTranslated(-50, 0).thatsFilledWith(red),
shape3.thatsRotated(45).thatsTranslated(-70.71/2, 0).thatsTranslated(0, -(50+50)).thatsFilledWith(brown)
)
def dog = picStack(
Picture {},
shape6.thatsRotated(-45).withFlippedX,
shape7.thatsRotated(45).withFlippedY.thatsTranslated(0, -70.71),
shape1.thatsRotated(45).thatsTranslated(0, -(70.71 + 70.71)),
shape3.thatsRotated(45).thatsTranslated(0, -141.42),
shape1.thatsRotated(45).withFlippedX.thatsRotated(90).thatsTranslated(141.42 + 70.71, -70.71).thatsFilledWith(red),
shape5.thatsRotated(-45).withFlippedX.thatsTranslated(141.42, -(141.42 + 70.71)),
shape4.thatsRotated(35).thatsTranslated(141.42+70.71, -70.71)
)
def boat = picStack (
Picture{},
shape1.thatsRotated(-90).thatsTranslated(-100, 0),
shape1.thatsTranslated(-100, 0).thatsFilledWith(red),
shape5.thatsRotated(-45).withFlippedX.thatsTranslated(0, -(200-141.42)/2),
shape3.thatsRotated(45).thatsTranslated(0, -(200-141.42)/2),
shape4.withFlippedY.thatsRotated(-45).thatsTranslated(70.71, -(200-141.42)/2),
shape7.thatsRotated(45).thatsTranslated(0, -100),
shape6.thatsRotated(45).withFlippedX.thatsTranslated(0, -((200-141.42)/2+70.71+70.71))
)
def butterfly = picStack (
Picture {},
shape1.thatsRotated(-135),
shape6.withFlippedY.thatsRotated(45).thatsTranslated(0, -70.71),
shape7.withFlippedX.thatsRotated(45).thatsTranslated(0, -(141.42+70.71)),
shape3.thatsRotated(45).thatsTranslated(70.71, -70.71),
shape5.thatsRotated(-45).thatsTranslated(70.71+70.71, -70.71),
shape4.thatsRotated(-45).thatsTranslated(70.71, -(70.71+70.71)),
shape1.thatsRotated(-45).thatsTranslated(70.71+70.71, 0).thatsFilledWith(red)
)
def triangle= picStack (
Picture {},
shape1.withFlippedX.thatsTranslated(100, 100),
shape1.withFlippedX.thatsTranslated(100, -100).thatsFilledWith(red),
shape5.withFlippedX,
shape6.withFlippedX.thatsTranslated(0, -100).thatsTranslated(100, 100),
shape7.thatsTranslated(200,0),
shape4.withFlippedY.thatsTranslated(100, 0),
shape3.thatsTranslated(100, 0)
)
def heart = picStack (
Picture {},
shape1.thatsRotated(-90).thatsTranslated(0, 100),
shape1.thatsRotated(-90).withFlippedY.thatsTranslated(0, -100).thatsFilledWith(red),
shape3.thatsTranslated(0, 100).thatsTranslated(100, 0),
shape6.withFlippedX.thatsTranslated(150, -50),
shape7.withFlippedX.thatsTranslated(0, -100),
shape4.thatsRotated(-90).thatsTranslated(150, 50),
shape5.thatsRotated(-90).thatsTranslated(50,-50).thatsTranslated(0, -100)
)
def mountain = picStack (
Picture {},
shape1.thatsRotated(45).withFlippedX.thatsFilledWith(red),
shape6.withFlippedX.thatsRotated(45).thatsTranslated(70.71, -70.71).thatsTranslated(0, 141.42),
shape4.thatsRotated(45).withFlippedY.thatsTranslated(0, 70.71),
shape5.thatsRotated(-45).withFlippedX.thatsTranslated(70.71, 0),
shape7.thatsRotated(-45).thatsTranslated(141.42, 0),
shape3.thatsTranslated(70.71, 100+70.71),
shape1.thatsRotated(45).thatsTranslated(141.42, 0)
)
def poster = picStack(
Picture{},
fish.thatsScaled(0.4).thatsTranslated(-250, 185),
bird.thatsScaled(0.4).thatsTranslated(-250+200, 210),
tree.thatsScaled(0.4).thatsTranslated(-250+200+150, 180),
dog.thatsScaled(0.4).thatsTranslated(-270, 51),
boat.thatsScaled(0.4).thatsTranslated(-69, 20),
butterfly.thatsScaled(0.4).thatsTranslated(77,30),
triangle.thatsScaled(0.4).thatsTranslated(-255, -150),
heart.thatsScaled(0.4).thatsTranslated(-86,-126),
mountain.thatsScaled(0.4).thatsTranslated(87,-160)
)
poster.draw