Project - Name Animation with Turtle

 Source Code given below -


import math
import time
import turtle
import random


############################ Functions defined here... #####################################
def write_A(pen):
pen.lt(70)
pen.fd(85)
pen.rt(130)
pen.fd(85)
pen.bk(40)
pen.rt(120)
pen.fd(35)

def write_B(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.circle(-25, 180, steps=10)
pen.lt(180)
pen.circle(-25, 180, steps=10)

def write_C(pen):
pen.lt(180)
pen.circle(-50, 180, steps=10)

def write_D(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.circle(-50, 180, steps=10)

def write_E(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.fd(50)
pen.rt(90)
pen.up()
pen.fd(50)
pen.rt(90)
pen.down()
pen.fd(50)
pen.lt(90)
pen.fd(50)
pen.lt(90)
pen.fd(50)

def write_F(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.fd(50)
pen.rt(90)
pen.up()
pen.fd(50)
pen.down()
pen.rt(90)
pen.fd(50)

def write_G(pen):
pen.up()
pen.lt(90)
pen.fd(100)
pen.lt(90)
pen.down()
pen.circle(50, 270, steps=10)
pen.lt(90)
pen.fd(50)
pen.lt(90)
pen.fd(10)

def write_H(pen):
pen.lt(90)
pen.fd(100)
pen.bk(50)
pen.rt(90)
pen.fd(50)
pen.lt(90)
pen.fd(50)
pen.bk(100)

def write_I(pen):
pen.fd(20)
pen.bk(10)
pen.lt(90)
pen.fd(100)
pen.lt(90)
pen.fd(10)
pen.bk(20)

def write_J(pen):
pen.up()
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.down()
pen.fd(40)
pen.bk(20)
pen.rt(90)
pen.fd(50)
pen.circle(-25, 180, steps=10)

def write_K(pen):
pen.lt(90)
pen.fd(100)
pen.bk(50)
pen.rt(45)
pen.fd(70)
pen.bk(70)
pen.rt(90)
pen.fd(70)

def write_L(pen):
pen.penup()
pen.lt(90)
pen.fd(100)
pen.lt(180)
pen.pendown()
pen.fd(100)
pen.lt(90)
pen.fd(50)

def write_M(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90 + 55)
pen.fd(50)
pen.lt(110)
pen.fd(50)
pen.rt(90 + 55)
pen.fd(100)

def write_N(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90 + 45)
pen.fd(100/math.cos(math.radians(45)))
pen.lt(45 + 90)
pen.fd(100)

def write_O(pen):
pen.circle(45)

def write_P(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.circle(-25, 180, steps=10)

def write_Q(pen):
pen.circle(45)
pen.lt(90)
pen.up()
pen.fd(10)
pen.lt(180)
pen.down()
pen.circle(25, 90, steps=10)

def write_R(pen):
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.circle(-30, 180, steps=20)
pen.rt(180 + 45)
pen.fd(60)

def write_S(pen):
pen.circle(25, 180, steps=10)
pen.circle(-25, 220, steps=10)

def write_T(pen):
pen.lt(90)
pen.fd(100)
pen.lt(90)
pen.fd(20)
pen.bk(40)

def write_U(pen):
pen.up()
pen.lt(90)
pen.fd(100)
pen.lt(180)
pen.down()
pen.fd(70)
pen.circle(30, 180, steps=10)
pen.fd(70)

def write_V(pen):
pen.up()
pen.lt(90)
pen.fd(100)
pen.rt(90 + 75)
pen.down()
pen.fd(100 / math.cos(math.radians(35)))
pen.lt(75 + 75)
pen.fd(100 / math.cos(math.radians(35)))
pen.up()
pen.rt(75 + 90)
pen.fd(100)
pen.lt(90)

def write_W(pen):
write_V(pen)
write_V(pen)

def write_X(pen):
pen.up()
pen.lt(90)
pen.fd(100)
pen.rt(90 + 55)
pen.down()
pen.fd(100 / math.cos(math.radians(35)))
pen.lt(55 + 90)
pen.up()
pen.fd(100)
pen.lt(90 + 55)
pen.down()
pen.fd(100 / math.cos(math.radians(35)))

def write_Y(pen):
pen.lt(90)
pen.fd(50)
pen.lt(35)
pen.fd(40)
pen.bk(40)
pen.rt(70)
pen.fd(40)

def write_Z(pen):
pen.up()
pen.lt(90)
pen.fd(100)
pen.rt(90)
pen.down()
pen.fd(80)
pen.rt(90 + 35)
pen.fd(100 / math.cos(math.radians(35)))
pen.lt(180 - 55)
pen.fd(80)

######################################################################################################################

print("The programme will start within 10sec. Be patient!")
time.sleep(2)

# processing
proc = 0
dot = "."
while proc <= 100:
time.sleep(0.05)
print(f"Loading.{dot * int(proc / 7)} {proc}")
proc = proc + 1

# colors defined here...
colors = ["red", "orange", "blue", "green", "pink", "yellow", "grey", "black", "purple", "brown"]

# the most important variable
name = input("\nEnter your name : ").upper()

# creating turtle screen
# scr = turtle.getscreen()
turtle.bgcolor("cyan")
turtle.title("Name Amimation")

# turtle (pen) object
t = turtle.Turtle()
t.pen(pensize=4, speed=3, pencolor="orange", fillcolor="green")
t.shape("turtle")

initialX = -300
for char in name:
t.penup()
t.home()
t.pencolor(random.choice(colors))
t.goto(initialX, 0)
t.pendown()
exec(f"write_{char}(t)")
initialX = initialX + 100

time.sleep(3)

Comments