Code Sketch


NATIONAL SCIENCE DAY-Army Public School Dighi
By: Soham Kailas Bhosale
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()