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
Post a Comment