Skip to content

Created a Package to draw different conic sections like ellipse, parabola, hyperbola using python turtle.

Notifications You must be signed in to change notification settings

Devansu-Yadav/Turtle-Conics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Creating Conic Sections using Python Turtle

We have created a Python package 'turtle_conics'.Using this package, we can draw different curves like Ellipse ,Parabola, Hyperbola in Python Turtle in any orientation as you like. *THIS IS THE LATEST VERSION OF THE PACKAGE. * Check out the Source code for the Package in my Github Repository


FEATURES

-Simple function to create any of the above mentioned curves by importing functions from all_curves module specifying the arguments. -Can be used inside Looping structures to create different patterns.


WHAT'S NEW

  • Added Butterfly curve in the new update
  • Added Heart curve in the update (0.1.1)
  • Added Cardioid curve in the update (0.1.0)

How To Import The Package ?

*NOTE:- While Importing the Package, the name of the package is 'turtle_conics' and not 'turtle-conics'.

  • For importing all functions inside the package:-

import turtle from turtle_conics.all_curves import * #Now make a function call for any of the curves turtle.done()

  • For importing a single function inside package:

import turtle from turtle_conics.all_curves import (func) #Now make a function call for any of the curves turtle.done()

HISTORY

0.0.1 (2020-05-22)

  • First release on PyPI

0.0.2(2020-05-24)

  • Added Rectangular Hyperbola

0.1.0(2020-05-27)

  • Added Cardioid curve

0.1.1(2020-06-05)

  • Added Heart curve

0.1.2(2020-06-05)

  • Made few changes in the package

0.1.3(2020-06-15)

  • Added Butterfly curve

Package Description

The 'turtle_conics' package consists of module 'all_curves' with 5 functions to draw Ellipse, Parabola, Hyperbola, Cardioid and the Heart Curve.

--ELLIPSE

We can draw 2 types of ellipse:- - Major axis along X axis (a>b) - Major axis along Y axis (b>a)

def ellipse(a, b, h= None, k= None, angle= None, angle_unit= None)

  • a:-It is the half-length of major axis of ellipse if (a>b) else half-length of minor axis when(b>a).
  • b:-It is the half-length of major axis of ellipse if (b>a) else half-length of minor axis when (a>b).
  • h,k:-(Optional) For drawing ellipses with center (h,k).By default both are zero.
  • angle(Optional) By providing the angle we can draw elliptical arcs upto that specific angle. By default angle is set to 360 degrees.
  • angle_unit(Optional) The argument for angle can be in degrees or radians. By default it is set to 'd'. NOTE:- For angle_units specify argument as 'd' or 'r'.

--Parabola

We can draw 4 types of parabola:- -Parabola along +ve X axis -Parabola along -ve X axis -Parabola along +ve Y axis -Parabola along -ve Y axis

def parabola(a, t, orientation, h=None, k=None)

  • a:- It is the distance from the origin to the focus of parabola.
  • t:- It is a parameter of a parabola.Used to define the curvature of parabola.Value of t should be greater than zero.
  • orientation:-Takes argument as 'x' or 'y' for drawing parabola along X axis or Y axis.
  • h,k:-(Optional) For drawing parabola with vertex at (h,k).By default both are zero.
  • NOTE:- For drawing Parabola along Negative Axes pass Negative value for 'a'.

--Hyperbola

We can draw 2 types of Hyperbola:- -Transverse axis ie hyperbola along X axis(a>b) -Transverse axis ie hyperbola along Y axis(b>a)

def hyperbola(a, b, h=None, k=None)

  • a :-It represents the distance from the vertex to the center of hyperbola when (a>b) else it represents the distance perpendicular to the transverse axis from the vertex to the asymptote line when (b>a).
  • b:-It represents the distance from the vertex to the center of hyperbola when (b>a) else it represents the distance perpendicular to the transverse axis from the vertex to the asymptote line when (a>b).
  • h,k:-(Optional) For drawing hyperbola with center (h,k).By default both are zero.
  • We can also make a Rectangular Hyperbola by giving equal values to 'a' and 'b'.
  • NOTE:-For drawing Hyperbola along X axis enter values for 'a' and 'b' such that (a>b) else for drawing hyperbola along Y axis put (b>a) .

--CARDIOID

We can draw 4 types of cardioid:- -Axis along X-axis #Cardioid along +ve X axis #Cardioid along -ve X axis

-Axis along Y-axis #Cardioid along +ve Y axis #Cardioid along -ve Y axis

def cardioid(a, orientation, h=None, k=None, angle=None, angle_unit=None)

  • a:-It defines the size of the cardioid.
  • orientation:-Takes argument as 'x' or 'y' for drawing cardioid along X axis or Y axis.
  • h,k:-(Optional) For drawing cardioid whose starting point is (h,k). By default both are zero.
  • angle(Optional) By providing the angle we can draw arcs of the cardioid upto that specific angle. By default angle is set to 360 degrees.
  • angle_unit(Optional) The argument for angle can be in degrees or radians. By default it is set to 'd'. NOTE:- For angle_units specify argument as 'd' or 'r'. For drawing Cardioid along Negative Axes pass Negative value for 'a'.

--HEART CURVE

We can draw 4 types of hearts:- -Axis along X-axis #Heart along +ve X axis #Heart along -ve X axis

-Axis along Y-axis #Heart along +ve Y axis #Heart along -ve Y axis

def heart(a, b, orientation, h=None, k=None, angle=None, angle_unit=None)

  • a:-It defines the Horizontal size of the heart.
  • b:-It defines the Vertical size of the heart.
  • orientation:-Takes argument as 'x' or 'y' for drawing heart along X axis or Y axis.
  • h,k:-(Optional) For drawing heart whose starting point is (h,k). By default both are zero.
  • angle(Optional) By providing the angle we can draw arcs of the heart upto that specific angle. By default angle is set to 360 degrees.
  • angle_unit(Optional) The argument for angle can be in degrees or radians. By default it is set to 'd'. NOTE:- For angle_units specify argument as 'd' or 'r'. For drawing Heart along Negative Axes pass Negative value for 'b'.

--THE BUTTERFLY CURVE

def butterfly(a, b, n=None,h= None, k= None)

  • a:-It defines the Horizontal size of the butterfly.
  • b:-It defines the Vertical size of the butterfly.
  • n:-(Optional) It is the Number of Turns to draw a Butterfly. By Default it is set to 602 turns.
  • h,k:-(Optional) For drawing a butterfly whose starting point is (h,k). By default both are zero. NOTE:- To make a Perfect Butterfly you can set the values of 'a' and 'b' as equal.

About

Created a Package to draw different conic sections like ellipse, parabola, hyperbola using python turtle.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages