Code Sketch
NATIONAL SCIENCE DAY-Army Public School Dighi
Category: Art
clear()
// Set the background to a standard Mint Green
setBackground(Color(240,240,240))
setPenColor(Color(0, 0, 128))
setPenThickness(5)
setPenFont(Font("Bauhaus 93",50))
write("NATIONAL SCIENCE DAY")
setSpeed(fast)
setFillColor(noColor)
setPenThickness(1)
right(90,08)
setPenThickness(2)
setPosition(500,50)
turnEast()
setPenColor(black)
turnWest()
forward(25)
setPenThickness(10)
forward(5)
left()
setPenThickness(7)
forward(10)
right()
forward(200)
left()
forward(20)
right(180)
forward(60)
right(180)
forward(20)
left()
forward(200)
right()
forward(20)
right()
hop(200)
right()
forward(10)
left()
setPenThickness(15)
forward(50)
left()
forward(10)
right(180)
forward(20)
right(180)
forward(10)
left()
forward(150)
hop(10)
left()
hop(5)
setPenThickness(2)
forward(-10)
setPenThickness(1)
right()
hop(3)
left()
hop(2)
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
hop(8)
setPenThickness(2)
forward(-10)
setPenThickness(1)
right()
hop(3)
left()
hop(2)
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
hop(8)
setPenThickness(2)
forward(-10)
setPenThickness(1)
right()
hop(3)
left()
hop(2)
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
hop(8)
setPenThickness(2)
forward(-10)
setPenThickness(1)
right()
hop(3)
left()
hop(2)
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
hop(8)
setPenThickness(2)
forward(-10)
setPenThickness(1)
right()
hop(3)
left()
hop(2)
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
hop(8)
setPenThickness(2)
forward(-10)
setPenThickness(1)
right()
hop(3)
left()
hop(2)
forward(7)
right()
hop(3)
left()
forward(-7)
right()
hop(3)
left()
forward(7)
setPosition(-155,90)
left(75)
setPenThickness(2)
setPosition(-120,-20)
right(45)
setPenThickness(4)
forward(100)
repeat(70) {
right(2,11)
}
right(40)
forward(105)
right(105)
setPenThickness(4)
right()
hop(5)
left()
hop(1)
left(35,30)
left(150,3)
left(15)
forward(14)
left(100,4)
setPosition(-80,50)
left(120)
right(105)
forward(100)
repeat(70) {
right(2,11)
}
right(40)
forward(105)
right(105)
setPenThickness(4)
right()
hop(5)
left()
hop(1)
left(35,30)
left(150,3)
left(15)
forward(14)
left(100,4)
right()
hop(05)
turnSouth()
right(105)
forward(100)
repeat(70) {
right(2,11)
}
right(40)
forward(105)
right(105)
setPenThickness(4)
right()
hop(5)
left()
hop(1)
left(35,30)
left(150,3)
left(15)
forward(14)
left(100,4)
hop(-15)
right()
hop(0.5)
turnSouth()
right(105)
forward(100)
repeat(70) {
right(2,11)
}
right(40)
forward(105)
right(105)
setPenThickness(4)
right()
hop(5)
left()
hop(1)
left(35,30)
left(150,3)
left(15)
forward(14)
left(100,4)
setPosition(-90,145)
turnSouth()
left(15)
right(105)
forward(100)
repeat(70) {
right(2,11)
}
right(40)
forward(105)
right(105)
setPenThickness(4)
right()
hop(5)
left()
hop(1)
left(35,30)
left(150,3)
left(15)
forward(14)
left(100,4)
hop(75)
right(100)
forward(1)
right(5,200)
left()
setFillColor(Color(188, 172, 172, 153))
setPenThickness(1)
forward(24)
left(45,10)
left(35)
left(55,15)
left(45,15)
forward(17)
hop(200)
setFillColor(noColor)
right(90)
hop(70)
val navyBlue = Color(0, 0, 128)
val charcoal = Color(54, 69, 79)
val virusRed = Color(200, 50, 50)
// Function to draw a single virus "bubble"
def drawVirus(x: Int, y: Int, size: Int) {
// 1. Draw the spikes (lines around the circle)
for (i <- 0 until 12) {
val spike = Picture.line(0, size + 10)
.withPenColor(charcoal)
.withPenThickness(3)
.withRotation(i * 30) // Rotates line around the center
.withTranslation(x, y)
draw(spike)
}
// 2. Draw the main body (the bubble)
val body = Picture.circle(size)
.withFillColor(virusRed)
.withPenColor(black)
.withTranslation(x, y)
// 3. Add small "dots" inside for texture
val dot = Picture.circle(size / 4)
.withFillColor(Color(255, 255, 255, 100)) // Light semi-transparent spots
.withTranslation(x + (size/3), y + (size/3))
draw(body, dot)
}
// Draw a bold title
// Draw multiple viruses of different sizes
drawVirus(100, 100, 40) // Large virus
drawVirus(120, -100, 30) // Medium virus
drawVirus(-50, -120, 20) // Small virus
setSpeed(superFast)
// Function to draw DNA at a specific spot
def drawDNA(startX: Int, startY: Int, rungs: Int) {
for (i <- 0 until rungs) {
// Calculate the "twist" using math.sin
val angle = i * 0.4
val x1 = startX + (math.sin(angle) * 60).toInt
val x2 = startX + (math.sin(angle + math.Pi) * 60).toInt
val currentY = startY + (i * 20)
// 1. Draw the Rung (connecting line)
penUp()
setPosition(x1, currentY)
setPenColor(charcoal)
setPenThickness(2)
penDown()
setPosition(x2, currentY)
// 2. Draw the first backbone dot
penUp()
setPosition(x1, currentY)
setPenColor(navyBlue)
setFillColor(navyBlue)
penDown()
circle(6)
// 3. Draw the second backbone dot
penUp()
setPosition(x2, currentY)
penDown()
circle(6)
}
// --- ENHANCEMENT: THE V AT THE END ---
val topY = startY + (rungs * 20) // Find where the last rung ended
setPenThickness(4)
setPenColor(navyBlue)
// Left side of V
penUp()
setPosition(startX, topY - 20) // Start from the center of the last rung
penDown()
setPosition(startX - 80, topY + 80)
// Right side of V
penUp()
setPosition(startX, topY - 20)
penDown()
setPosition(startX + 80, topY + 80)
}
// Draw a Bold Science Title
penUp()
drawDNA(700, -300, 25)
def lab {
setFillColor(noColor)
setPenColor(black)
left(-65)
arc(50, 320)
right(75)
forward(50)
circle(10)
left(90)
hop(20)
left(90)
forward(50)
hop(60)
left(90)
hop(55)
left(220)
right(90,20)
left(75,20)
right(90,20)
left(75,20)
}
setPosition(450, -250)
lab
setPosition(250,-150)
lab
invisible()
setPenColor(black)
setPosition(-100, -350)
setSpeed(fast)
right(45)
forward(100)
right(90)
forward(100)
hop(-100)
right(45)
forward(100)
hop(-100)
left(90)
forward(120)
setFillColor(Color(225, 219, 219, 173))
circle(20)
setFillColor(noColor)
left(90)
hop(20*2)
left(90)
forward(110)
left(90)
hop(10)
left(90)
forward(30)
right(90)
hop(10)
right(90)
forward(30)
left(90)
hop(10)
left(90)
forward(30)
hop(-30)
left(90)
hop(30)
left(90)
forward(100)
setFillColor(Color(225, 219, 219, 173))
right(45)
forward(30)
right(90)
forward(10)
left(90)
forward(5)
left(90)
forward(20)
left(90)
forward(5)
right(-90)
forward(5)
right(90)
forward(30)
setFillColor(noColor)
left(-45)
forward(37)
left(90)
forward(120)
invisible()