{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scipy.constants import golden\n", "\n", "def plot_equilateral_triangle(\n", " sidelength, lastlines=None,\n", " hingecounter=0, invertx=False, inverty=False):\n", " # Find equilateral triangle height by halving it and finding the long side\n", " # of the resulting right triangle.\n", " # See Google pythagorean calc search:\n", " # a = sqrt(c^2 - b^2)\n", " # pythagorean theorem calc: find a, b=n/a, c=n/a\n", " # https://www.google.com/search?q=pythagorean+theorem+calc%3A+find+a%2C+b%3Dn%2Fa%2C+c%3Dn%2Fa\n", " height = np.sqrt([ sidelength**2 - (sidelength / 2.0) ])[0]\n", "\n", " # x1,y1 is the left vertex of the triangle, x2,y2 the right, x3,y3 the top\n", " startx = starty = None\n", " if lastlines is None:\n", " startx = 0\n", " starty = 0\n", " else:\n", " # hingecounter will be 0, 1, or 2 (left, right, or top)\n", " startx = lastlines[0].get_xdata()[hingecounter]\n", " starty = lastlines[0].get_ydata()[hingecounter]\n", " x1 = startx\n", " y1 = starty\n", " if invertx:\n", " x2 = startx + sidelength\n", " x3 = startx + (sidelength / 2.0)\n", " else:\n", " x2 = startx - sidelength\n", " x3 = startx - (sidelength / 2.0)\n", " y2 = starty\n", " if inverty:\n", " y3 = starty - height\n", " else:\n", " y3 = starty + height\n", " lines = ax.plot(np.array([x1, x2, x3, x1]), np.array([y1, y2, y3, y1]))\n", " return lines\n", "\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", "ax.grid(True)\n", "\n", "lastlines = None\n", "sidelength = 89\n", "hingecounter = 0\n", "# Create a stack of triangles:\n", "for i in range(0, 8):\n", " if hingecounter % 2 == 0:\n", " invertx = True\n", " inverty = False\n", " else:\n", " invertx = True\n", " inverty = True\n", " lastlines = plot_equilateral_triangle(\n", " sidelength, lastlines=lastlines,\n", " hingecounter=hingecounter, invertx=invertx, inverty=inverty)\n", " sidelength = sidelength / golden\n", " # Toggle hinge from left -> right -> top -> left again ...\n", " if hingecounter < 2:\n", " hingecounter +=1\n", " else:\n", " hingecounter = 0\n", "\n", "# Don't let aspect ratio get squashed\n", "plt.axes().set_aspect('equal', 'datalim')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }