Code Sketch


Tangram
By: Maya Anay Kamat
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