|
| 1 | +{ |
| 2 | + "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "code", |
| 5 | + "execution_count": 54, |
| 6 | + "id": "e09fc54e", |
| 7 | + "metadata": {}, |
| 8 | + "outputs": [], |
| 9 | + "source": [ |
| 10 | + "import turtle\n", |
| 11 | + "#using turtle to draw the polygons\n", |
| 12 | + "\n", |
| 13 | + "\n", |
| 14 | + "class Polygon:\n", |
| 15 | + " def __init__(self, sides, name, size=100, color='black', line_thickness=3):\n", |
| 16 | + " self.sides = sides\n", |
| 17 | + " self.name = name\n", |
| 18 | + " self.size = size\n", |
| 19 | + " self.color = color\n", |
| 20 | + " self.line_thickness = line_thickness\n", |
| 21 | + " self.interior_angles = (self.sides - 2) * 180\n", |
| 22 | + " self.angle = self.interior_angles / self.sides\n", |
| 23 | + "\n", |
| 24 | + " def draw(self):\n", |
| 25 | + " turtle.color(self.color)\n", |
| 26 | + " turtle.pensize(self.line_thickness)\n", |
| 27 | + " for i in range(self.sides):\n", |
| 28 | + " turtle.forward(100)\n", |
| 29 | + " turtle.right(180 - self.angle)" |
| 30 | + ] |
| 31 | + }, |
| 32 | + { |
| 33 | + "cell_type": "code", |
| 34 | + "execution_count": 11, |
| 35 | + "id": "32d98085", |
| 36 | + "metadata": {}, |
| 37 | + "outputs": [], |
| 38 | + "source": [ |
| 39 | + "square = Polygon(4, \"Square\", color='green', line_thickness=3)\n", |
| 40 | + "penatgon = Polygon(5, \"Pentagon\", color='red', line_thickness=18)\n", |
| 41 | + "hexagon = Polygon(6, \"Hexagon\", color='blue', line_thickness=11)" |
| 42 | + ] |
| 43 | + }, |
| 44 | + { |
| 45 | + "cell_type": "code", |
| 46 | + "execution_count": 12, |
| 47 | + "id": "d4c2bfc7", |
| 48 | + "metadata": {}, |
| 49 | + "outputs": [ |
| 50 | + { |
| 51 | + "name": "stdout", |
| 52 | + "output_type": "stream", |
| 53 | + "text": [ |
| 54 | + "4\n", |
| 55 | + "Square\n", |
| 56 | + "360\n", |
| 57 | + "90.0\n" |
| 58 | + ] |
| 59 | + } |
| 60 | + ], |
| 61 | + "source": [ |
| 62 | + "print(square.sides)\n", |
| 63 | + "print(square.name)\n", |
| 64 | + "print(square.interior_angles)\n", |
| 65 | + "print(square.angle)" |
| 66 | + ] |
| 67 | + }, |
| 68 | + { |
| 69 | + "cell_type": "code", |
| 70 | + "execution_count": 13, |
| 71 | + "id": "58a62439", |
| 72 | + "metadata": {}, |
| 73 | + "outputs": [ |
| 74 | + { |
| 75 | + "name": "stdout", |
| 76 | + "output_type": "stream", |
| 77 | + "text": [ |
| 78 | + "5\n", |
| 79 | + "Pentagon\n", |
| 80 | + "540\n", |
| 81 | + "108.0\n" |
| 82 | + ] |
| 83 | + } |
| 84 | + ], |
| 85 | + "source": [ |
| 86 | + "print(penatgon.sides)\n", |
| 87 | + "print(penatgon.name)\n", |
| 88 | + "print(penatgon.interior_angles)\n", |
| 89 | + "print(penatgon.angle)" |
| 90 | + ] |
| 91 | + }, |
| 92 | + { |
| 93 | + "cell_type": "code", |
| 94 | + "execution_count": 14, |
| 95 | + "id": "fe726815", |
| 96 | + "metadata": {}, |
| 97 | + "outputs": [ |
| 98 | + { |
| 99 | + "name": "stdout", |
| 100 | + "output_type": "stream", |
| 101 | + "text": [ |
| 102 | + "6\n", |
| 103 | + "Hexagon\n", |
| 104 | + "720\n", |
| 105 | + "120.0\n" |
| 106 | + ] |
| 107 | + } |
| 108 | + ], |
| 109 | + "source": [ |
| 110 | + "print(hexagon.sides)\n", |
| 111 | + "print(hexagon.name)\n", |
| 112 | + "print(hexagon.interior_angles)\n", |
| 113 | + "print(hexagon.angle)" |
| 114 | + ] |
| 115 | + }, |
| 116 | + { |
| 117 | + "cell_type": "code", |
| 118 | + "execution_count": 17, |
| 119 | + "id": "5f38e17b", |
| 120 | + "metadata": {}, |
| 121 | + "outputs": [], |
| 122 | + "source": [ |
| 123 | + "hexagon.draw()" |
| 124 | + ] |
| 125 | + }, |
| 126 | + { |
| 127 | + "cell_type": "code", |
| 128 | + "execution_count": 19, |
| 129 | + "id": "3218723b", |
| 130 | + "metadata": {}, |
| 131 | + "outputs": [], |
| 132 | + "source": [ |
| 133 | + "penatgon.draw()" |
| 134 | + ] |
| 135 | + }, |
| 136 | + { |
| 137 | + "cell_type": "code", |
| 138 | + "execution_count": 21, |
| 139 | + "id": "c71b3631", |
| 140 | + "metadata": {}, |
| 141 | + "outputs": [], |
| 142 | + "source": [ |
| 143 | + "square.draw()" |
| 144 | + ] |
| 145 | + }, |
| 146 | + { |
| 147 | + "cell_type": "code", |
| 148 | + "execution_count": 62, |
| 149 | + "id": "f6878544", |
| 150 | + "metadata": {}, |
| 151 | + "outputs": [], |
| 152 | + "source": [ |
| 153 | + "#Inheritance of properties froma parent class using super()\n", |
| 154 | + "class Square(Polygon):\n", |
| 155 | + " def __init__(self, size=100, color='black', line_thickness=3):\n", |
| 156 | + " super().__init__(4, 'Square', size, color, line_thickness)\n", |
| 157 | + "\n", |
| 158 | + " def draw(self):\n", |
| 159 | + " turtle.begin_fill()\n", |
| 160 | + " super().draw()\n", |
| 161 | + " turtle.end_fill()\n", |
| 162 | + "\n", |
| 163 | + "\n", |
| 164 | + "square = Square(color='#666666', size=200)\n", |
| 165 | + "\n", |
| 166 | + "square.draw()\n", |
| 167 | + "\n", |
| 168 | + "turtle.done()" |
| 169 | + ] |
| 170 | + }, |
| 171 | + { |
| 172 | + "cell_type": "code", |
| 173 | + "execution_count": 75, |
| 174 | + "id": "86d5e04b", |
| 175 | + "metadata": {}, |
| 176 | + "outputs": [ |
| 177 | + { |
| 178 | + "data": { |
| 179 | + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQnklEQVR4nO3df6zddX3H8edrrcVRkCLcMBWxsGmRGARyh2NjmKUBrAnFHyQr+6FWSWnmmGzZMtTEZfMfjckyFzZuGow/EoYOpFnNNsWom8lU8AKl/KwrRaQoeAW1sxgRfO+P88UcDvf2ntt7en988nwkJ/f7/Xw/55z3+57TV8/9nO/JSVUhSVr+fmWxC5AkjYaBLkmNMNAlqREGuiQ1wkCXpEasXKw7Pv7442vt2rWLdfeStCzddtttP6iqsemOLVqgr127lsnJycW6e0lalpI8NNMxl1wkqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRswa6EnWJdnZd9mf5MqBORcn2dUdn0xy7mGrWJI0rVm/JLqqdgNnACRZATwCbB+Y9iVgR1VVktOBfwVOHW2pkqSDmTXQB6wHHqiq53zrdFX9pG93NVDzLUySNDdzXUPfBFw/3YEkb05yP/DvwDtnmLOlW5KZnJqamuNdS5IOZuhAT7IK2AjcMN3xqtpeVacCbwI+OMOcbVU1XlXjY2Njh1CuJGkmc3mFvgG4vaoeO9ikqvoqcEqS4+dVmSRpTuYS6Jcy83LLbyRJt30WcATw+PzLkyQNa6g3RZOsBs4HLu8b2wpQVRPAW4G3Jfk58FPg96vKN0YlaQENFehVdQA4bmBsom/7w8CHR1uaJGku/KSoJDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1IhZAz3JuiQ7+y77k1w5MOcPk+xKcleSryV57WGrWJI0rVm/JLqqdgNnACRZATwCbB+Y9iDw+qr6YZINwDbgdaMtVZJ0MLMG+oD1wANV9VD/YFV9rW/3G8CJ8y1MkjQ3c11D3wRcP8ucdwH/eWjlSJIO1dCv0JOsAjYC7z3InN+jF+jnznB8C7AF4KSTTppToZKkg5vLK/QNwO1V9dh0B5OcDlwLXFxVj083p6q2VdV4VY2PjY3NvVpJ0ozmEuiXMsNyS5KTgJuAP66qb42iMEnS3Ay15JJkNXA+cHnf2FaAqpoAPgAcB/xzEoCnq2p85NVKkmY0VKBX1QF6gd0/NtG3fRlw2WhLkyTNhZ8UlaRGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSI2YN9CTrkuzsu+xPcuXAnFOTfD3Jz5L85WGrVpI0o5WzTaiq3cAZAElWAI8A2wemPQH8GfCm0ZYnSRrWXJdc1gMPVNVD/YNV9f2q+ibw85FVJkmak7kG+ibg+kO9syRbkkwmmZyamjrUm5EkTWPoQE+yCtgI3HCod1ZV26pqvKrGx8bGDvVmJEnTmMsr9A3A7VX12OEqRpJ06OYS6Jcyj+UWSdLhNetZLgBJVgPnA5f3jW0FqKqJJL8GTAIvAn7RndZ4WlXtH3nFkqRpDRXoVXUAOG5gbKJv+1HgxNGWJkmaCz8pKkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDVi1kBPsi7Jzr7L/u5LoPvnJMk/JtmTZFeSsw5bxZKkac36JdFVtRs4AyDJCuARYPvAtA3AK7vL64Brup/S8rNjB9x8M1xwAWzcuNjVSEOb65LLeuCBqnpoYPxi4FPV8w1gTZKXjKRCaSHt2AGXXgr/9E+9nzt2LHZF0tDmGuibgOunGX8Z8HDf/r5u7DmSbEkymWRyampqjnctLYCbb4Ynn+xtP/lkb19aJoYO9CSrgI3ADYd6Z1W1rarGq2p8bGzsUG9GOnwuuACOPLK3feSRvX1pmZh1Db3PBuD2qnpsmmOPAC/v2z+xG5OWl40b4frrXUPXsjSXQL+U6ZdbAHYAf5rk0/TeDP1xVX1vvsVJi2LjRoNcy9JQgZ5kNXA+cHnf2FaAqpoA/gN4I7AHeBLYPPJKJUkHNVSgV9UB4LiBsYm+7QLePdrSJElz4SdFJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYMFehJ1iS5Mcn9Se5Lcs7A8WOTbE+yK8mtSV5zeMqVJM1k2FfoHwU+X1WnAq8F7hs4/j5gZ1WdDrytmy9JWkCzBnqSY4DzgI8BVNVTVfWjgWmnAV/ujt8PrE1ywmhLlSQdzDCv0E8GpoCPJ7kjybVJVg/MuRN4C0CSs4FXACcO3lCSLUkmk0xOTU3Ns3RJUr9hAn0lcBZwTVWdCRwArhqY8yFgTZKdwBXAHcAzgzdUVduqaryqxsfGxuZVuCTpuVYOMWcfsK+qbun2b2Qg0KtqP7AZIEmAB4G9I6xTkjSLWV+hV9WjwMNJ1nVD64F7++d0Z8Gs6nYvA77ahbwkaYEM8wodesso13WhvRfYnGQrQFVNAK8GPpmkgHuAdx2OYiVJMxsq0KtqJzA+MDzRd/zrwKtGV5Ykaa78pKgkNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUiKECPcmaJDcmuT/JfUnOGTh+TJLPJbkzyT1JNh+eciVJMxnqS6KBjwKfr6pLkqwCjhw4/m7g3qq6KMkYsDvJdVX11CiLlSTNbNZAT3IMcB7wDoAupAeDuoCjkwQ4CngCeHqklUqSDmqYJZeTgSng40nuSHJtktUDc64GXg18F7gLeE9V/WK0pUqSDmaYQF8JnAVcU1VnAgeAqwbmXAjsBF4KnAFcneRFgzeUZEuSySSTU1NT86lbkjRgmEDfB+yrqlu6/RvpBXy/zcBN1bMHeBA4dfCGqmpbVY1X1fjY2Nh86pYkDZg10KvqUeDhJOu6ofXAvQPTvtONk+QEYB2wd4R1SpJmMexZLlcA13VnuOwFNifZClBVE8AHgU8kuQsI8NdV9YPDUbAkaXpDBXpV7QTGB4Yn+o5/F7hgdGVJkubKT4pKUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRQwV6kjVJbkxyf5L7kpwzcPyvkuzsLncneSbJiw9PyZKk6awcct5Hgc9X1SVJVgFH9h+sqo8AHwFIchHw51X1xEgrlSQd1KyBnuQY4DzgHQBV9RTw1EGucilw/SiKkyQNb5gll5OBKeDjSe5Icm2S1dNNTHIk8AbgszMc35JkMsnk1NTUIRctSXq+YQJ9JXAWcE1VnQkcAK6aYe5FwP/MtNxSVduqaryqxsfGxg6pYEnS9IYJ9H3Avqq6pdu/kV7AT2cTLrdI0qKYNdCr6lHg4STruqH1wL2D87q19tcD/zbSCiVJQxn2LJcrgOu6M1z2ApuTbAWoqoluzpuBm6vqwOjLlCTNZqhAr6qdwPjA8MTAnE8AnxhFUZKkufOTopLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGpGqWpw7TqaAhw7x6scDPxhhOYvJXpamVnpppQ+wl2e9oqrGpjuwaIE+H0kmq2rwO06XJXtZmlrppZU+wF6G4ZKLJDXCQJekRizXQN+22AWMkL0sTa300kofYC+zWpZr6JKk51uur9AlSQMMdElqxJIK9CQvT/KVJPcmuSfJe6aZc0ySzyW5s5uzue/YM0l2dpcdC1v98+ocppdjk2xPsivJrUle03fsDUl2J9mT5KqFrf45Nc63j28nuat7TCYXtvrn1fnCrr5nnzt/O82cI5J8pvu935Jkbd+x93bju5NcuKDFD5hPL0nWJvlp37+ViQVv4Ll1DtPLeUluT/J0kksGjr09yf92l7cvXOXPq3G+fcw/v6pqyVyAlwBnddtHA98CThuY8z7gw932GPAEsKrb/8li9zDHXj4C/E23fSrwpW57BfAAcAqwCrhz8LrLoY9u/9vA8Yv9eHS1BDiq234BcAvwWwNz/gSY6LY3AZ/ptk/rHocjgJO7x2fFMu1lLXD3Yj8ec+xlLXA68Cngkr7xFwN7u5/HdtvHLrc+umPzzq8l9Qq9qr5XVbd32/8H3Ae8bHAacHSSAEfRC/SnF7TQIQzZy2nAl7s59wNrk5wAnA3sqaq9VfUU8Gng4gUrvs88+1hSqucn3e4LusvgWQEXA5/stm8E1nfPtYuBT1fVz6rqQWAPvcdpUcyzlyVlmF6q6ttVtQv4xcDVLwS+WFVPVNUPgS8CbzjcNU9nnn2MxJIK9H7dn4dn0vtfrt/VwKuB7wJ3Ae+pqmd/OS9MMpnkG0netFC1zuYgvdwJvKWbczbwCuBEeoH5cN+8fTw/RBfcIfQBvSf0zUluS7JlgUqdUZIVSXYC36cXBIO9/PJ3X1VPAz8GjmMJPibz6AXg5CR3JPnvJL+7UDXPZIheZrKkHpd59AEjyK8lGehJjgI+C1xZVfsHDl8I7AReCpwBXJ3kRd2xV1Tv47R/APxDkl9fmIpnNksvHwLWdE+AK4A7gGcWtsLhzKOPc6vqLGAD8O4k5y1QydOqqmeq6gx6/+Gc3b/ev9zMo5fvASdV1ZnAXwD/0vdvaFG08rjMs49559eSC/QkL6AXHNdV1U3TTNkM3NT9ebMHeJDeui1V9Uj3cy/wX/ReTS6a2Xqpqv1Vtbl7AryN3nsCe4FHgJf3TT2xG1sU8+ij/zH5PrCdRVym6FdVPwK+wvP/PP/l7z7JSuAY4HGW2GPSb669dMtGj3fXvY3e+wGvWrCCD+IgvcxkST4uh9DHSPJrSQV6t773MeC+qvr7GaZ9B1jfzT8BWAfs7c60OKIbPx74HeDew1/19IbpJcmaJKu63cuAr3avfr8JvDLJyd3xTcCinLUznz6SrE5ydDdnNXABcPdC1D1DnWNJ1nTbvwqcD9w/MG0H8OyZEpcAX67eO1Y7gE3dmSMnA68Ebl2Qwqcxn166667ornsKvV72Lkjh0xiyl5l8Abig+/d/LL3n2BcOS6GzmE8fI8uv+b6rOsoLcC69Nddd9JZVdgJvBLYCW7s5LwVuprd+fjfwR934b3djd3Y/37UMejmH3lkju4Gb6Ht3vpv7LXqvnt6/HPugd5bOnd3lnsXso6vndHrLQbu6584HuvG/AzZ22y8EbqD3puetwCl9139/93jsBjYs116At3aPx07gduCiZdDLb9JbHz9A7y+me/qu/86uxz3A5uXYx6jyy4/+S1IjltSSiyTp0BnoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqRH/D73GekG50FvRAAAAAElFTkSuQmCC\n", |
| 180 | + "text/plain": [ |
| 181 | + "<Figure size 432x288 with 1 Axes>" |
| 182 | + ] |
| 183 | + }, |
| 184 | + "metadata": { |
| 185 | + "needs_background": "light" |
| 186 | + }, |
| 187 | + "output_type": "display_data" |
| 188 | + } |
| 189 | + ], |
| 190 | + "source": [ |
| 191 | + "#Plotting Points with Classes\n", |
| 192 | + "\n", |
| 193 | + "import matplotlib.pyplot as plt\n", |
| 194 | + "\n", |
| 195 | + "class Point:\n", |
| 196 | + " def __init__(self, x, y, color=\"red\", size=10):\n", |
| 197 | + " self.x = x\n", |
| 198 | + " self.y = y\n", |
| 199 | + " self.color = color\n", |
| 200 | + " self.size = size\n", |
| 201 | + " \n", |
| 202 | + " def __add__(self, other):\n", |
| 203 | + " if isinstance(other, Point):\n", |
| 204 | + " x = self.x + other.x\n", |
| 205 | + " y = self.y + other.y\n", |
| 206 | + " return Point(x,y)\n", |
| 207 | + " else:\n", |
| 208 | + " x = self.x + other\n", |
| 209 | + " y = self.y + other\n", |
| 210 | + " return Point(x,y)\n", |
| 211 | + "\n", |
| 212 | + " def plot(self):\n", |
| 213 | + " plt.scatter(self.x, self.y, c=self.color, s=self.size)\n", |
| 214 | + "\n", |
| 215 | + "if __name__ == \"__main__\":\n", |
| 216 | + " a = Point(1,3)\n", |
| 217 | + " b = Point(2,4)\n", |
| 218 | + " c = a + b\n", |
| 219 | + " c.plot()\n", |
| 220 | + " plt.show()" |
| 221 | + ] |
| 222 | + } |
| 223 | + ], |
| 224 | + "metadata": { |
| 225 | + "kernelspec": { |
| 226 | + "display_name": "Python 3 (ipykernel)", |
| 227 | + "language": "python", |
| 228 | + "name": "python3" |
| 229 | + }, |
| 230 | + "language_info": { |
| 231 | + "codemirror_mode": { |
| 232 | + "name": "ipython", |
| 233 | + "version": 3 |
| 234 | + }, |
| 235 | + "file_extension": ".py", |
| 236 | + "mimetype": "text/x-python", |
| 237 | + "name": "python", |
| 238 | + "nbconvert_exporter": "python", |
| 239 | + "pygments_lexer": "ipython3", |
| 240 | + "version": "3.9.2" |
| 241 | + } |
| 242 | + }, |
| 243 | + "nbformat": 4, |
| 244 | + "nbformat_minor": 5 |
| 245 | +} |
0 commit comments