" min(s.y for s in trace))"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'Direction' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m<ipython-input-1-f5ea591d6161>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m plot_wh = {Direction.UP: (0, 1), Direction.LEFT: (-1, 0),\n\u001b[0m\u001b[1;32m 2\u001b[0m Direction.DOWN: (0, -1), Direction.RIGHT: (1, 0)}\n",
+ "\u001b[0;31mNameError\u001b[0m: name 'Direction' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "plot_wh = {Direction.UP: (0, 1), Direction.LEFT: (-1, 0),\n",
+ " Direction.DOWN: (0, -1), Direction.RIGHT: (1, 0)}"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 16,
},
"outputs": [],
"source": [
- "def plot_trace(trace, colour='k', xybounds=None, fig=None, subplot_details=None, filename=None):\n",
+ "def plot_trace(trace, colour='k', highlight_start=True,\n",
+ " xybounds=None, fig=None, subplot_details=None, filename=None):\n",
" plt.axis('on')\n",
" plt.axes().set_aspect('equal')\n",
+ " \n",
+ " if highlight_start:\n",
+ " plt.axes().add_patch(plt.Circle((trace[0].x, trace[0].y), 0.2, color=colour))\n",
+ " \n",
" for s, t in chunks(trace, 2):\n",
" w, h = plot_wh[t.dir]\n",
" plt.arrow(s.x, s.y, w, h, head_width=0.1, head_length=0.1, fc=colour, ec=colour, length_includes_head=True)\n",
{
"cell_type": "code",
"execution_count": 24,
- "metadata": {},
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"def square_tour(a=80):\n",
{
"cell_type": "code",
"execution_count": 25,
- "metadata": {},
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"def cross_tour(a=50, b=40):\n",
{
"cell_type": "code",
"execution_count": 26,
- "metadata": {},
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"def quincunx_tour(a=60, b=30, c=50):\n",
{
"cell_type": "code",
"execution_count": 27,
- "metadata": {},
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"heart_points = [Step(60, 50, Direction.UP), Step(50, 90, Direction.UP),\n",