### Archive

Posts Tagged ‘Draw’

## Python: Spirograph

Learning : Python
Subject: Writing Python codes to generate Spirograph Art

Writing codes to draw always funny time for me, playing around numbers, changing attributes to get something new and changing it again .. and again ..
In this post, we will write a code to draw some spirograph shapes, easy and shrort code will do the job. So lets Start ..

We will use Python Library turtle to draw, and will write one Function call it def draw_it(h,sz,ang) will take three arguments: h:number of heads, sz: size, ang: angle, then we will call this function to draw our Spirograph Art.
Code:
First we will set-up the turtle:

```# turtle set-up
import turtle
t = turtle.Turtle()
t.shape("dot")
t.speed(0)

t.hideturtle()```

Then here is the main Function to draw our graphs

```# draw_it() function

def draw_it(h,sz,ang) :
c = 0
while True :
for i in range (h) :
t.forward(sz)
t.right(360/h)

t.right(ang)
c +=1
if c >=360/ang :
break
```

Then we call the function and pass the parameters, I tried several combinations and will include them in the source file in Download section. Here are some out-puts.

 Calling: t.pencolor(‘lightgray’) draw_it(19,19,19) t.pencolor(‘gray’) draw_it(17,17,17) t.pencolor(‘black’) draw_it(15,15,15) Hope you enjoy, have fun and change the numbers to get new shapes .. ## Daily Digital Sketch

Here is the daily-sketch for today. I am using Galaxy Note 9 and Samsung Note Application for drawing and Coloring..

more on my Twitter here H.ta3kees  Follow me on Twitter..

## Lily Flower Drawing

Away from Coding and Python projects, drawing is my best way to relax, along with coffee and almost 15min of sketching with pencil then ink-ed it, here is the Lily. Categories: Art, Learning, Sketch, SketchBook

## Random Sketch

Last night I was going through the Net looking for some Animals phones for my kids to learn there Names and the kind of food each will eat, I came up with this photo of a Giraffe, couldn’t stop myself from the desire to draw it. I use my Galaxy Tab S4 and Autodesk Sketchbook Application to sketch it.. Here it is.. And you may fond more of my sketches on the SKETCHE Page.

## Python and Lindenmayer System – P1

Learning : Lindenmayer System P1
Subject: Drawing with python using L-System

First What is Lindenmayer System or L-System? L-System is a system consists of an alphabet of symbols (A, B, C ..) that can be used to make strings, and a collection of rules that expand each symbol into larger string of symbols.

L-system structure: We can put it as Variables, Constants, Axiom, Rules

Variables (V): A, B, C …
constants : We define a symbols that present some movements, such as ‘+’ mean rotate right x degree, ‘F’ mean move forward and so on ..
Axiom : Axiom or Initiator is a string of symbols from Variable (V ) defining the initial state of the system.
Rules : Defining the way variables can be replaced with combinations of constants and other variables.

Sample:
Variables : A, B {we have two variables A and B}
Constants : none
Axiom : A {Start from A}
Rules : (A → AB), (B → A) {convert A to AB, and convert B to A}

So if we start running the Nx is the number the time we run the rules (Iteration).
N0 : A
N1 : AB
N2 : AB A
N3 : AB A AB
N4 : AB A AB AB A
N5 : AB A AB A AB A AB .. an so-on
So in this example after 5 Iteration we will have this pattern (AB A AB A AB A AB)

In this post we will write two functions, one to generate the pattern based on the Variables and Rules we have. Another function to draw the pattern using Python Turtle and based on the Constants we have within the patterns.

The constants that we may use and they are often used as standard are:

F means “Move forward and draw line”.
f means “Move forward Don’t draw line”.
+ means “turn left by ang_L°”.
− means “turn right ang_R°”.
[ means “save position and angle”.
] means “pop position and angle”.
X means “Do nothing”

First Function: Generate the Pattern will take the Axiom (Start symbol) and apply the rules that we have (as our AB sample above). The tricky point here is that the function is changing with each example, so nothing fixed here. In the coming code i am using only one variable F mean (move forward) and + – to left and right rotations. Other patterns may include more variables. once we finished the function will return the new string list.

Generate the Pattern

 # Generate the patern def l_system(s) : new_s = [] for each in s : if each == ‘F’: new_s.append(‘F+F+FF-F’) else : new_s.append(each) return new_s The second function: Draw the Pattern will take the string we have and draw it based on the commands and rules we have such as if it read ‘F’ then it will move forward and draw line, and if it reads ‘-‘ then it “turn right ang_R°”.
here is the code ..

Draw the Pattern
def draw_l_system(x,y,s,b,ang_L,ang_R):

cp = [] # Current position

t.goto(x,y)

t.pendown()

for each in s:

if each == ‘F’ :

t.forward(b)

if each == ‘f’ :

t.penup()

t.forward(b)

t.pendown()

elif each == ‘+’:

t.left(ang_L)

elif each == ‘-‘:

t.right(ang_R)

elif each == ‘[‘:

elif each == ‘]’:

t.penup()

t.goto(position)

t.pendown()

t.penup()

Now we will just see a one example of what we may get out from all this, and in the next post P2, we will do more sample of drawing using L-System.

In the image bellow, left side showing the Rules, angles and iterations and on the right side the output after drawing the patters.

## Python: Drawing Shapes

Learning : Drawing Shapes
Subject: New shapes function

To Draw a Square shape, we need to know the width ( W ) of the square side, and then we draw a line and moving in 90 degree and drawing another line and so on until we finished the 4 side of the square. In the same principle if we want to draw a triangle (equilateral one), we need to know length of its sides and in mathematics we know that in equilateral triangles the angles (corners) are 120 degree, so we draw a line and move in 120 degree and drawing another two sides.

In coming code, we will write a general function in Python to pass the number on sides we want to draw (triangle =3, Square=4,Pentagon = 5, Hexagon =6 .. and so on), the width (size) of the shape and the position (x,y) of the first angle or point.

The Codes:

t.goto(x1,y1)

# To get t.right angle

t.pendown()

for x in range (s_heads +1) :

t.forward(w)

t.right(-rang)

t.penup()

Results after using the new function we can pass any number of sides and the function will draw the shape, here are a sample execution of it. .. .. Click to enlarge ..

Now if we call the function number of times equal to it’s heads what we will get ? let’s see . .. Click to enlarge ..

And take a look when we set the numbers to 20. .. Click to enlarge .. Follow me on Twitter..

## Python: Random Squares

Random Squares Art
Subject: Python, Graphics and simulation

In This project say we have a Square (10 x 10 cm) the square has four corners labeled as (a, b, c, d) as in figure i.

then we select a random corner (c or d) [assume it is c] then we select an angle (ang) of rotation between (10, 45), and we draw another square positioning (a) on the (c) and rotating it with (ang) anticlockwise as figure ii.

Now if we repeat this two steps ..
S1. Selecting a random corner (c or d).
S2. Selecting a random rotation angle between (10, 45). and draw the square.
let’s see what we may have as a random art generator.

Python Code for Random Squares Art
Codes to select corner (c or d)
def select_c_or_d():

if random.randrange(0,2) == 0 :

x = cdpos

y = cdpos

else:

x = cdpos

y = cdpos

t.right(random.randrange(rotmin,rotmax)*f)

Codes to draw the Square (c or d)
def d_square(w,x1,y1):

t.goto(x1,y1)

t.pendown()

t.forward(w)

t.right(-90)

t.forward(w)

# save corner c position

cdpos.append([t.xcor(),t.ycor()])

t.right(-90)

t.forward(w)

# save corner d position

cdpos.append([t.xcor(),t.ycor()])

t.right(-90)

t.forward(w)

t.penup()

I notes that if we increase the number of Squares, we start to have some interesting results.

.. Have Fun .. Follow me on Twitter..

## Python project: Drawing with Python – Flower

Python: Draw Flower

Drawing with Python

In this post i tried to draw another flower using arcs of circles, i get a simple one and i guess with more sizes we can do more complex shape.

You can play with the code and change the numbers, size and rotation degree and let’s see what we will have.

t = turtle.Turtle()
t.hideturtle()
t.pendown()
for x in range (30):

t.circle(60,70)

if x %3==0:

t.circle (10,90)  ## Python Project: Drawing with Python – Flower 1

Python: Draw Flower

Drawing with Python

One of my favorite areas is drawing, and when its come to programming languages, one of the first thing i look after is the commands that let me draw lines and shapes.

In python, we have to import a library to help us in this task, here in this short code block I am using codes to draw a flower shape. We can improve the idea later but i want the first version to be as simple as i can. So lets see the code.

# We have to import this library
import turtle

# Here are some setting
t = turtle.Turtle()
t.shape(“point”)
t.color(‘black’)
t.speed(9)
t.left(0)
t.penup
size=10
#This function to draw one petal
def petal():

t.pendown()

for x in range (40):

t.forward(size)

t.left(x)

t.penup()

left_d=-15

for pet in range (8):

petal()

t.goto(0,0)

t.left(-15)

———————————————– ## From my Sketch Book

Bird From my Sketch Book

I am sketching to enhance my skill, here is one of sketches from my sketchbook using pencil as a guide-line and ink-pen to finish the drawing. Click to Enlarge

::My SketchBook::
Sketch of: Bird
Using: Ink-Pen
Date: 5/12/2017
SketchBook: SketchBook # 22