Compare commits

...

5 Commits

Author SHA1 Message Date
caglazir
6e78205c32 I concluded my drawing project.
For the last stage of my drawing project, I got stuck on the animation.
I am not sure if I did something wrong or followed the wrong steps,
but I was unable to animate my drawing which made me quite sad! I tried
a few variations of animation such as translate and rotate, but none
worked the way I intended. I am still happy with my drawing though. I
wish we had more visual tutorials and maybe even class workshop times
to come together and discuss these things because asking for help when
everyone is working at their own pace and hours make it very awkward and
inconvenient to reach out to others. I would eventually love to learn
animation but I think timing of this project was not it.
2025-10-06 20:03:52 -04:00
caglazir
27d744a4f1 I added codes for the face of the ghosts! Also the
coloring!!

I was able to explore Turtle commands and use them smoothly.
I didn't really run into any issues. Coloring was much easier
than I imagined it would be. I am excited to see how these will look
animated. One thing I wish was having more time (and clarity of mind)
to code the face of these ghosts as a replice of the GhostFace. I really
wanted to do that but currently I have way too much on my plate to
complicate this any further! So this could be an improvement or a future
project idea!
2025-10-04 17:56:57 -04:00
caglazir
0bb1d73129 I coded the first ghost using circle and bezier.
Somewhere I got stuck was:
- I struggled setting up the bezier function. It took
some time researching to understand what was happening.

Something I figured out was:
The bezier function. It looks
so smooth!

A strategy I used:
Reading online forums for help, such as stackoverflow,
various Python guide websites, etc.

Something I'm wondering:
I was wondering on how to parameterize the bezier
control points, but thanks to Varun, I know now.

Something I want to learn:
Nothing specific at the moment.

An idea for future:
No new ideas at the moment.
2025-10-04 16:10:28 -04:00
caglazir
e6cd7fafde I wrote my plan for the project
Somewhere I got stuck: I can't recall what I struggled with. I think I was overall a little intimidated.
Something I figured out: Overlapping two filled in/colored objects to create the desired shape that is
much more complex to do in one-go.
Strategy I used: Breaking my problem down into smaller chunks.
Something I'm wondering: How to color in specific shapes.
Something I want to learn about: Animation. I would love to eventually learn more complex motions.
An idea for future: Adding more elements such as a background with dynamic objects.
2025-10-02 12:18:19 -04:00
caglazir
815264a40d I added my description adn milestones.
-Somewhere I got stuck was: Figuring out the
simplest and realistically achievable way to do my
design while appropriately challenging myself.

-Something I figured out was: Overlapping two
 color filled shapes to create a more coherent
 design (? I hope this works, right now it's just
 an idea)

 -Something I'm wondering about is: Whether if I
 can actually execute my plan or not. I feel like
 it might be too complex but I do think I'm
 ready to take on the challenge. But I am willing
 to simplify things if I need to ease it down a
 little bit just so I don't get stuck and frustrated.

Something I want to learn more about is: Different
animations! I originally planned something else but
I noticed the animation I wanted to have was more
complex than what the Superturtle link includes. I
hope that I can use different animations in future
projects!
2025-09-17 11:16:23 -04:00
4 changed files with 162 additions and 5 deletions

BIN
DrawingIdeaGhost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -9,13 +9,28 @@ which allows basic formatting.
## Description
(Describe your goal for this project. If you want to link to an
(For this project, i want to draw 1-2 ghosts that move in a repeated manner as if they are floating.)
Describe your goal for this project. If you want to link to an
image, move the image to this directory, and then use the following syntax:
![Description](filename.png)
([Initial sketch of the ghost, guesstimating the number of turns, circles, and straight paths that will be needed for this drawing.](DrawingIdeaGhost.png)
)
## Planning
(Include your planning here, including your project milestone.)
(Milestone 1: Function: Ghost-face
This miletone includes the drawing of the ghost-face as a function so it could be repeated for each ghost. (I do plan on using Ghostface as my inspiration for these! :) But I think I might have to compromise on its fluid design as I don't think I'm equipped well enough to do a color fill in a complex shape just yet. Mine would probably look more triangular for the mouth and more of a whole circle for the eyes, unless I can overlap two colored in circles to create the shape I need.
Milestone 2: Function: Ghost-body
This milestone function draws the body of the ghosts. I plan on adding only 3 "frills". In total these three frills will include 10 circles of different radii to be drawn to different extents in order to create curves. It seems a little daunting at the moment but I think using curves for my typeface prepared me to take on this challenge. If needed, I can divide this function into three parts to ease the work load of each session I plan on dedicating to this project. In that case this milestone look like:
Milestone 2.1: Ghost-body F1
Milestone 2.2: Ghost-body F2
Milestone 2.3: Ghost-body F3
Milestone 3: Animation
Using Superturtle I plan on adding a simple animation of left right motion. Maybe I can move them in a circular path as well in a loop.
)

36
README.py Normal file
View File

@@ -0,0 +1,36 @@
# (Drawing project)
(
This is the README file for your drawing project.
Replace all the text in parentheses with your own text.
It's written in a simple language called Markdown,
which allows basic formatting.
)
## Description
(For this project, i want to draw 1-2 ghosts that move in a repeated manner as if they are floating.)
Describe your goal for this project. If you want to link to an
image, move the image to this directory, and then use the following syntax:
([Initial sketch of the ghost, guesstimating the number of turns, circles, and straight paths that will be needed for this drawing.](DrawingIdeaGhost.png)
)
## Planning
(Milestone 1: Function: Ghost-face
This miletone includes the drawing of the ghost-face as a function so it could be repeated for each ghost. (I do plan on using Ghostface as my inspiration for these! :) But I think I might have to compromise on its fluid design as I don't think I'm equipped well enough to do a color fill in a complex shape just yet. Mine would probably look more triangular for the mouth and more of a whole circle for the eyes, unless I can overlap two colored in circles to create the shape I need.
Milestone 2: Function: Ghost-body
This milestone function draws the body of the ghosts. I plan on adding only 3 "frills". In total these three frills will include 10 circles of different radii to be drawn to different extents in order to create curves. It seems a little daunting at the moment but I think using curves for my typeface prepared me to take on this challenge. If needed, I can divide this function into three parts to ease the work load of each session I plan on dedicating to this project. In that case this milestone look like:
Milestone 2.1: Ghost-body F1
Milestone 2.2: Ghost-body F2
Milestone 2.3: Ghost-body F3
Milestone 3: Animation
Using Superturtle I plan on adding a simple animation of left right motion. Maybe I can move them in a circular path as well in a loop.
)

View File

@@ -1,7 +1,113 @@
# drawing.py
# ----------
# By ____(you)___________
# By Challa Zirek
#
# (Briefly describe what this program does.)
# (This project draws two ghosts, in theme of Halloween.)
import superturtle
from superturtle import *
from superturtle.animation import *
import turtle
from turtle import *
import bezier
import numpy as np
TurtleScreen=turtle.Screen
turtle.bgcolor("#B04021")
turtle.pensize(4)
def ghostie(length,x,y):
turtle.pencolor("#3C025E")
turtle.fillcolor("#B8B8B8")
penup()
turtle.goto(x,y)
pendown()
#Starts drawing the left side of the outline
turtle.begin_fill()
left(180)
circle(2*length, 90)
forward(3*length)
circle(-6*length,30)
left(170)
circle(5*length,30)
circle(-0.2*length,180)
print(pos())
#Starts drawing the middle frill
xpos, ypos = turtle.pos()
points=np.array([
[xpos, (xpos+30), (xpos-70), (xpos+70), xpos],
[ypos, (ypos-48), (ypos-88), (ypos-148), (ypos-218)]
])
curve = bezier.Curve(points, 4)
s_vals = np.linspace(0,1,100)
bezierpoints= curve.evaluate_multi(s_vals)
for n in range(1, bezierpoints.shape[1]):
turtle.goto(bezierpoints[0][n], bezierpoints[1][n])
left(180)
points2=np.array([
[xpos, (xpos+90), (xpos+10), (xpos+40), (xpos+50)],
[(ypos-218), (ypos-178), (ypos-58), (ypos-28), ypos]
])
curve2 = bezier.Curve(points2, 4)
s_vals = np.linspace(0,1,100)
bezierpoints2= curve2.evaluate_multi(s_vals)
for n in range(1, bezierpoints2.shape[1]):
turtle.goto(bezierpoints2[0][n], bezierpoints2[1][n])
#Starts drawing the right side of the outline
circle(-0.2*length,180)
left(10)
circle(5*length,30)
left(171)
circle(-6*length,30)
forward(3*length)
circle(2*length, 90)
turtle.end_fill()
#Starts drawing the face
def ghostieface(length,x,y):
turtle.fillcolor("#161616")
penup()
turtle.goto(x-20, y-50)
pendown()
turtle.begin_fill()
turtle.shape("circle")
turtle.stamp()
turtle.end_fill()
penup()
turtle.goto(x+20, y-50)
pendown()
turtle.begin_fill()
turtle.shape("circle")
turtle.stamp()
turtle.end_fill()
penup()
turtle.goto(x-5, y-90)
pendown()
left(95)
turtle.begin_fill()
turtle.shape("circle")
turtle.shapesize(stretch_len=2)
turtle.stamp()
turtle.shape("classic")
turtle.shapesize(1,1)
turtle.end_fill()
ghostieface(length,x,y)
ghostie(30, -150, 250)
penup()
turtle.home()
pendown()
ghostie (30, 150, 250)
turtle.done()