{ "cells": [ { "cell_type": "code", "execution_count": 54, "id": "e09fc54e", "metadata": {}, "outputs": [], "source": [ "import turtle\n", "#using turtle to draw the polygons\n", "\n", "\n", "class Polygon:\n", " def __init__(self, sides, name, size=100, color='black', line_thickness=3):\n", " self.sides = sides\n", " self.name = name\n", " self.size = size\n", " self.color = color\n", " self.line_thickness = line_thickness\n", " self.interior_angles = (self.sides - 2) * 180\n", " self.angle = self.interior_angles / self.sides\n", "\n", " def draw(self):\n", " turtle.color(self.color)\n", " turtle.pensize(self.line_thickness)\n", " for i in range(self.sides):\n", " turtle.forward(100)\n", " turtle.right(180 - self.angle)" ] }, { "cell_type": "code", "execution_count": 11, "id": "32d98085", "metadata": {}, "outputs": [], "source": [ "square = Polygon(4, \"Square\", color='green', line_thickness=3)\n", "penatgon = Polygon(5, \"Pentagon\", color='red', line_thickness=18)\n", "hexagon = Polygon(6, \"Hexagon\", color='blue', line_thickness=11)" ] }, { "cell_type": "code", "execution_count": 12, "id": "d4c2bfc7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n", "Square\n", "360\n", "90.0\n" ] } ], "source": [ "print(square.sides)\n", "print(square.name)\n", "print(square.interior_angles)\n", "print(square.angle)" ] }, { "cell_type": "code", "execution_count": 13, "id": "58a62439", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5\n", "Pentagon\n", "540\n", "108.0\n" ] } ], "source": [ "print(penatgon.sides)\n", "print(penatgon.name)\n", "print(penatgon.interior_angles)\n", "print(penatgon.angle)" ] }, { "cell_type": "code", "execution_count": 14, "id": "fe726815", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6\n", "Hexagon\n", "720\n", "120.0\n" ] } ], "source": [ "print(hexagon.sides)\n", "print(hexagon.name)\n", "print(hexagon.interior_angles)\n", "print(hexagon.angle)" ] }, { "cell_type": "code", "execution_count": 17, "id": "5f38e17b", "metadata": {}, "outputs": [], "source": [ "hexagon.draw()" ] }, { "cell_type": "code", "execution_count": 19, "id": "3218723b", "metadata": {}, "outputs": [], "source": [ "penatgon.draw()" ] }, { "cell_type": "code", "execution_count": 21, "id": "c71b3631", "metadata": {}, "outputs": [], "source": [ "square.draw()" ] }, { "cell_type": "code", "execution_count": 62, "id": "f6878544", "metadata": {}, "outputs": [], "source": [ "#Inheritance of properties froma parent class using super()\n", "class Square(Polygon):\n", " def __init__(self, size=100, color='black', line_thickness=3):\n", " super().__init__(4, 'Square', size, color, line_thickness)\n", "\n", " def draw(self):\n", " turtle.begin_fill()\n", " super().draw()\n", " turtle.end_fill()\n", "\n", "\n", "square = Square(color='#666666', size=200)\n", "\n", "square.draw()\n", "\n", "turtle.done()" ] }, { "cell_type": "code", "execution_count": 75, "id": "86d5e04b", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Plotting Points with Classes\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "class Point:\n", " def __init__(self, x, y, color=\"red\", size=10):\n", " self.x = x\n", " self.y = y\n", " self.color = color\n", " self.size = size\n", " \n", " def __add__(self, other):\n", " if isinstance(other, Point):\n", " x = self.x + other.x\n", " y = self.y + other.y\n", " return Point(x,y)\n", " else:\n", " x = self.x + other\n", " y = self.y + other\n", " return Point(x,y)\n", "\n", " def plot(self):\n", " plt.scatter(self.x, self.y, c=self.color, s=self.size)\n", "\n", "if __name__ == \"__main__\":\n", " a = Point(1,3)\n", " b = Point(2,4)\n", " c = a + b\n", " c.plot()\n", " plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.2" } }, "nbformat": 4, "nbformat_minor": 5 }