{ "cells": [ { "cell_type": "markdown", "id": "c49490c2", "metadata": {}, "source": [ "# Icon example\n", "\n", "This example draws the robodraw icon." ] }, { "cell_type": "code", "execution_count": 1, "id": "622dfd4a", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import robodraw\n", "\n", "edges_lookup = {\n", " \"D\": [\n", " ((0, 0), (0, 1)),\n", " ((0, 1), (0, 2)),\n", " ((0, 2), (0, 3)),\n", " ((0, 3), (1, 2.5)),\n", " ((1, 2.5), (1, 1.5)),\n", " ((1, 1.5), (1, 0.5)),\n", " ((1, 0.5), (0, 0)),\n", " ],\n", " \"R\": [\n", " ((0, 0), (0, 1)),\n", " ((0, 1), (0, 2)),\n", " ((0, 2), (0, 3)),\n", " ((0, 3), (1, 2.5)),\n", " ((1, 2.5), (1, 1.5)),\n", " ((1, 1.5), (0, 1)),\n", " ((0, 1), (1, 0)),\n", " ],\n", "}\n", "\n", "r = 0.3\n", "\n", "d = robodraw.Drawing()\n", "for i, letter in enumerate(\"RD\"):\n", " with d.translate(i * 2):\n", " edges = edges_lookup[letter]\n", " nodes = {v for edge in edges for v in edge}\n", "\n", " for cooa, coob in edges:\n", " d.zigzag(\n", " (cooa[0], cooa[1]),\n", " (coob[0], coob[1]),\n", " shorten=r,\n", " width=0.04,\n", " lw=4,\n", " color=(0.1, 0.4, 1.0),\n", " )\n", " for coo in nodes:\n", " color = robodraw.hash_to_color(\n", " str((coo, letter)), hmin=0.3, hmax=0.7\n", " )\n", " d.square(\n", " (coo[0], coo[1]),\n", " radius=r,\n", " hatch=\"\",\n", " color=color,\n", " alpha=0.6,\n", " # linewidth=0,\n", " )\n", "\n", "d.grid(ticklabels=False)\n", "d.savefig(\"../_static/robodraw-icon.png\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "9ab1c858", "metadata": {}, "outputs": [], "source": [ "from PIL import Image\n", "\n", "img = Image.open(\"../_static/robodraw-icon.png\")\n", "img.save(\n", " \"../_static/robodraw.ico\",\n", " format=\"ICO\",\n", " sizes=[(16, 16), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)],\n", ")" ] } ], "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" } }, "nbformat": 4, "nbformat_minor": 5 }