tilezz 0.0.2

Utilities to work with perfect-precision polygonal tiles built on top of complex integer rings.
Documentation
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "409c84fb-e787-4247-841f-7c262f1802ca",
   "metadata": {},
   "source": [
    "# Using TileZZ with Jupyter\n",
    "\n",
    "This notebook shows how tilezz can be used to work with and plot tiles interactively in a Jupyter notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "795a1d4a-31c6-4990-a3b2-bbf60ec7d808",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"\"><svg width=\"500\" height=\"500\" viewBox=\"0 0 500 500\" xmlns=\"http://www.w3.org/2000/svg\">\n",
       "<rect x=\"0\" y=\"0\" width=\"500\" height=\"500\" opacity=\"1\" fill=\"#FFFFFF\" stroke=\"none\"/>\n",
       "<text x=\"250\" y=\"15\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"32.25806451612903\" opacity=\"1\" fill=\"#000000\">\n",
       "Spectre tile\n",
       "</text>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"57\" y1=\"469\" x2=\"57\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"64\" y1=\"469\" x2=\"64\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"71\" y1=\"469\" x2=\"71\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"78\" y1=\"469\" x2=\"78\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"85\" y1=\"469\" x2=\"85\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"93\" y1=\"469\" x2=\"93\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"100\" y1=\"469\" x2=\"100\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"107\" y1=\"469\" x2=\"107\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"114\" y1=\"469\" x2=\"114\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"121\" y1=\"469\" x2=\"121\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"129\" y1=\"469\" x2=\"129\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"136\" y1=\"469\" x2=\"136\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"143\" y1=\"469\" x2=\"143\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"150\" y1=\"469\" x2=\"150\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"157\" y1=\"469\" x2=\"157\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"165\" y1=\"469\" x2=\"165\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"172\" y1=\"469\" x2=\"172\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"179\" y1=\"469\" x2=\"179\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"186\" y1=\"469\" x2=\"186\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"193\" y1=\"469\" x2=\"193\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"201\" y1=\"469\" x2=\"201\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"208\" y1=\"469\" x2=\"208\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"215\" y1=\"469\" x2=\"215\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"222\" y1=\"469\" x2=\"222\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"229\" y1=\"469\" x2=\"229\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"237\" y1=\"469\" x2=\"237\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"244\" y1=\"469\" x2=\"244\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"251\" y1=\"469\" x2=\"251\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"258\" y1=\"469\" x2=\"258\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"265\" y1=\"469\" x2=\"265\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"273\" y1=\"469\" x2=\"273\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"280\" y1=\"469\" x2=\"280\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"287\" y1=\"469\" x2=\"287\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"294\" y1=\"469\" x2=\"294\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"301\" y1=\"469\" x2=\"301\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"309\" y1=\"469\" x2=\"309\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"316\" y1=\"469\" x2=\"316\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"323\" y1=\"469\" x2=\"323\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"330\" y1=\"469\" x2=\"330\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"337\" y1=\"469\" x2=\"337\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"345\" y1=\"469\" x2=\"345\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"352\" y1=\"469\" x2=\"352\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"359\" y1=\"469\" x2=\"359\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"366\" y1=\"469\" x2=\"366\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"373\" y1=\"469\" x2=\"373\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"381\" y1=\"469\" x2=\"381\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"388\" y1=\"469\" x2=\"388\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"395\" y1=\"469\" x2=\"395\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"402\" y1=\"469\" x2=\"402\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"409\" y1=\"469\" x2=\"409\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"417\" y1=\"469\" x2=\"417\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"424\" y1=\"469\" x2=\"424\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"431\" y1=\"469\" x2=\"431\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"438\" y1=\"469\" x2=\"438\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"445\" y1=\"469\" x2=\"445\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"453\" y1=\"469\" x2=\"453\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"460\" y1=\"469\" x2=\"460\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"467\" y1=\"469\" x2=\"467\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"474\" y1=\"469\" x2=\"474\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"481\" y1=\"469\" x2=\"481\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"489\" y1=\"469\" x2=\"489\" y2=\"52\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"463\" x2=\"489\" y2=\"463\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"456\" x2=\"489\" y2=\"456\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"449\" x2=\"489\" y2=\"449\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"442\" x2=\"489\" y2=\"442\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"435\" x2=\"489\" y2=\"435\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"429\" x2=\"489\" y2=\"429\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"422\" x2=\"489\" y2=\"422\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"415\" x2=\"489\" y2=\"415\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"408\" x2=\"489\" y2=\"408\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"401\" x2=\"489\" y2=\"401\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"394\" x2=\"489\" y2=\"394\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"388\" x2=\"489\" y2=\"388\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"381\" x2=\"489\" y2=\"381\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"374\" x2=\"489\" y2=\"374\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"367\" x2=\"489\" y2=\"367\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"360\" x2=\"489\" y2=\"360\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"353\" x2=\"489\" y2=\"353\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"346\" x2=\"489\" y2=\"346\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"340\" x2=\"489\" y2=\"340\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"333\" x2=\"489\" y2=\"333\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"326\" x2=\"489\" y2=\"326\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"319\" x2=\"489\" y2=\"319\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"312\" x2=\"489\" y2=\"312\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"305\" x2=\"489\" y2=\"305\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"299\" x2=\"489\" y2=\"299\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"292\" x2=\"489\" y2=\"292\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"285\" x2=\"489\" y2=\"285\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"278\" x2=\"489\" y2=\"278\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"271\" x2=\"489\" y2=\"271\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"264\" x2=\"489\" y2=\"264\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"258\" x2=\"489\" y2=\"258\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"251\" x2=\"489\" y2=\"251\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"244\" x2=\"489\" y2=\"244\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"237\" x2=\"489\" y2=\"237\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"230\" x2=\"489\" y2=\"230\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"223\" x2=\"489\" y2=\"223\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"217\" x2=\"489\" y2=\"217\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"210\" x2=\"489\" y2=\"210\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"203\" x2=\"489\" y2=\"203\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"196\" x2=\"489\" y2=\"196\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"189\" x2=\"489\" y2=\"189\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"182\" x2=\"489\" y2=\"182\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"176\" x2=\"489\" y2=\"176\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"169\" x2=\"489\" y2=\"169\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"162\" x2=\"489\" y2=\"162\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"155\" x2=\"489\" y2=\"155\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"148\" x2=\"489\" y2=\"148\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"141\" x2=\"489\" y2=\"141\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"134\" x2=\"489\" y2=\"134\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"128\" x2=\"489\" y2=\"128\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"121\" x2=\"489\" y2=\"121\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"114\" x2=\"489\" y2=\"114\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"107\" x2=\"489\" y2=\"107\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"100\" x2=\"489\" y2=\"100\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"93\" x2=\"489\" y2=\"93\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"87\" x2=\"489\" y2=\"87\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"80\" x2=\"489\" y2=\"80\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"73\" x2=\"489\" y2=\"73\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"66\" x2=\"489\" y2=\"66\"/>\n",
       "<line opacity=\"0.1\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"59\" x2=\"489\" y2=\"59\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"57\" y1=\"469\" x2=\"57\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"129\" y1=\"469\" x2=\"129\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"201\" y1=\"469\" x2=\"201\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"273\" y1=\"469\" x2=\"273\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"345\" y1=\"469\" x2=\"345\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"417\" y1=\"469\" x2=\"417\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"489\" y1=\"469\" x2=\"489\" y2=\"52\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"449\" x2=\"489\" y2=\"449\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"381\" x2=\"489\" y2=\"381\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"312\" x2=\"489\" y2=\"312\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"244\" x2=\"489\" y2=\"244\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"176\" x2=\"489\" y2=\"176\"/>\n",
       "<line opacity=\"0.2\" stroke=\"#000000\" stroke-width=\"1\" x1=\"50\" y1=\"107\" x2=\"489\" y2=\"107\"/>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"49,52 49,469 \"/>\n",
       "<text x=\"40\" y=\"449\" dy=\"0.5ex\" text-anchor=\"end\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-2.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"44,449 49,449 \"/>\n",
       "<text x=\"40\" y=\"381\" dy=\"0.5ex\" text-anchor=\"end\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-1.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"44,381 49,381 \"/>\n",
       "<text x=\"40\" y=\"312\" dy=\"0.5ex\" text-anchor=\"end\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "0.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"44,312 49,312 \"/>\n",
       "<text x=\"40\" y=\"244\" dy=\"0.5ex\" text-anchor=\"end\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "1.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"44,244 49,244 \"/>\n",
       "<text x=\"40\" y=\"176\" dy=\"0.5ex\" text-anchor=\"end\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "2.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"44,176 49,176 \"/>\n",
       "<text x=\"40\" y=\"107\" dy=\"0.5ex\" text-anchor=\"end\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "3.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"44,107 49,107 \"/>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"50,470 489,470 \"/>\n",
       "<text x=\"57\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-5.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"57,470 57,475 \"/>\n",
       "<text x=\"129\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-4.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"129,470 129,475 \"/>\n",
       "<text x=\"201\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-3.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"201,470 201,475 \"/>\n",
       "<text x=\"273\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-2.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"273,470 273,475 \"/>\n",
       "<text x=\"345\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "-1.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"345,470 345,475 \"/>\n",
       "<text x=\"417\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "0.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"417,470 417,475 \"/>\n",
       "<text x=\"489\" y=\"480\" dy=\"0.76em\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"9.67741935483871\" opacity=\"1\" fill=\"#000000\">\n",
       "1.0\n",
       "</text>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"489,470 489,475 \"/>\n",
       "<polyline fill=\"none\" opacity=\"1\" stroke=\"#000000\" stroke-width=\"1\" points=\"417,312 417,244 354,210 292,176 229,210 193,150 121,150 121,219 184,253 148,312 184,372 246,337 309,372 345,312 417,312 \"/>\n",
       "<polygon opacity=\"0.2\" fill=\"#FFFF00\" points=\"417,312 417,244 354,210 292,176 229,210 193,150 121,150 121,219 184,253 148,312 184,372 246,337 309,372 345,312 417,312 417,312 417,312 \"/>\n",
       "<circle cx=\"417\" cy=\"312\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"417\" y=\"312\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "0\n",
       "</text>\n",
       "<circle cx=\"417\" cy=\"244\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"417\" y=\"244\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "1\n",
       "</text>\n",
       "<circle cx=\"354\" cy=\"210\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"354\" y=\"210\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "2\n",
       "</text>\n",
       "<circle cx=\"292\" cy=\"176\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"292\" y=\"176\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "3\n",
       "</text>\n",
       "<circle cx=\"229\" cy=\"210\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"229\" y=\"210\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "4\n",
       "</text>\n",
       "<circle cx=\"193\" cy=\"150\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"193\" y=\"150\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "5\n",
       "</text>\n",
       "<circle cx=\"121\" cy=\"150\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"121\" y=\"150\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "6\n",
       "</text>\n",
       "<circle cx=\"121\" cy=\"219\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"121\" y=\"219\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "7\n",
       "</text>\n",
       "<circle cx=\"184\" cy=\"253\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"184\" y=\"253\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "8\n",
       "</text>\n",
       "<circle cx=\"148\" cy=\"312\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"148\" y=\"312\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "9\n",
       "</text>\n",
       "<circle cx=\"184\" cy=\"372\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"184\" y=\"372\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "10\n",
       "</text>\n",
       "<circle cx=\"246\" cy=\"337\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"246\" y=\"337\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "11\n",
       "</text>\n",
       "<circle cx=\"309\" cy=\"372\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"309\" y=\"372\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "12\n",
       "</text>\n",
       "<circle cx=\"345\" cy=\"312\" r=\"10\" opacity=\"1\" fill=\"#FF0000\" stroke=\"none\" stroke-width=\"1\"/>\n",
       "<text x=\"345\" y=\"312\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"12.903225806451614\" opacity=\"1\" fill=\"#000000\">\n",
       "13\n",
       "</text>\n",
       "<text x=\"269\" y=\"261\" dy=\"0.5ex\" text-anchor=\"middle\" font-family=\"sans-serif\" font-size=\"25.806451612903228\" opacity=\"1\" fill=\"#000000\">\n",
       "hello\n",
       "</text>\n",
       "</svg>\n",
       "</div>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    ":dep plotters = { version = \"^0.3.7\", features = [\"evcxr\", \"all_series\"] }\n",
    "// 1(a) if you want to use a published version of this crate:\n",
    "// :dep tilezz = \"*\"\n",
    "// 1(b) (RECOMMENDED) if you cloned this repository and want to use the current development version:\n",
    ":dep tilezz = { path = \".\" }\n",
    "\n",
    "use plotters::prelude::*;\n",
    "use tilezz::snake::constants::spectre;\n",
    "use tilezz::snake::{Snake, Turtle};\n",
    "use tilezz::plotters::plot_tile;\n",
    "use tilezz::zz::ZZ12;\n",
    "\n",
    "evcxr_figure((500,500), |root| {\n",
    "    let s: Snake<ZZ12> = spectre();\n",
    "    let tile = s.to_polyline_f64(&Turtle::default());\n",
    "\n",
    "    let _ = root.fill(&WHITE);\n",
    "    let root = root.margin(10, 10, 10, 10);\n",
    "\n",
    "    plot_tile(\n",
    "        &mut ChartBuilder::on(&root)\n",
    "            .caption(\"Spectre tile\", (\"sans-serif\", 40).into_font())\n",
    "            .x_label_area_size(20)\n",
    "            .y_label_area_size(40),\n",
    "        &tile,\n",
    "    );\n",
    "    root.present()?;\n",
    "    Ok(())\n",
    "})"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Rust",
   "language": "rust",
   "name": "rust"
  },
  "language_info": {
   "codemirror_mode": "rust",
   "file_extension": ".rs",
   "mimetype": "text/rust",
   "name": "Rust",
   "pygment_lexer": "rust",
   "version": ""
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}