Skip to content

Instantly share code, notes, and snippets.

@yiyuezhuo
Created December 22, 2022 23:57
Show Gist options
  • Save yiyuezhuo/4daad936a24cb66c78ecc8715f6c540c to your computer and use it in GitHub Desktop.
Save yiyuezhuo/4daad936a24cb66c78ecc8715f6c540c to your computer and use it in GitHub Desktop.
draw simple hex
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"id": "c6086ec1",
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image, ImageDraw\n",
"from math import cos, sin, pi, ceil"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "be2abb11",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACwCAYAAABO3PEPAAAFLElEQVR4nO3dSZIiSRBFQSOl7n9letGSVTkwOIQPZh6qy+oNIsSP59AkXK7X6zUKu1wuqx8CDxS/vP76WP0AjjCS/HZ5jv6sfgA97HLX2s0uI4koXJTPJ8FI8tthMGWHQn473cRKDkVN6qlelZJDoY5dbmblhqImdVWuSqmhGElNX5+vqmMpNRTqqn5zKzMUNdlHxaqUGQr1Vb7JlRiKmuynWlVKDIV9VH1hn34oarKfis9l6qEYyf6qVCX1UNhXtZtf2qGoyXlUqEraobC/SjfBlENRk/PJXpWUQ+E8qrxdnG4oanI+FZ7rVEMxErJWJdVQOK/sN8c0Q1ETPmWsSpqhQOYX9imGoiZ8ynoNpBgK3JKpKsuHoib8lPFaWDoUI+GZLFVZXhS4JdvNc9lQ1IRWGaqiKKSV6e3iJUNRE1pluUYUhTJWVmX6UNSEV2W4VqYOxUg4alVVHL0oYfUL+2lDUROOWnntKAolza7KlKGoCb2suoYUhbJmVmX4UNSE3lZcS1OKYiSMMqsqQ4ey+vM57Gv228XDhuLIxWgzry0v5tnC6KoMGYqaMMusa0xR2MbIqnQfipow24xrTVHYyqiqdB2KmrDK6LeLuw3FSFht5LXn6MWWelely1DUhCxGXYOKwrZ6VuXwUNSEbEa8sFcUttT7xn1oKGpCBT2q8vZQjITsel6bjl6cwtGqvDUUNaGKXteoonAaR6ry8lDUhGp6vF2sKJzC0Rv7S0NRE3bwTlWah2IkVHfk2nX04pRerUrTUNSEXbz7wl5ROJ13bvhPh6Im7Ky1KorCKb164384FDXhDFqqcncoRsLuXrm2Hb0gnlfl5lDUhLNofbtYUTi9liD8GoqacGb3qqIoEM/D8G0oagK3q/Lx8z8aCWf16IW9oxd8cS8UHxFqArd8rYqiwA+3gvGhJnDf5z4UBW74GY6PW/8I/HO5XL6/mAd+u16vjl7Q4uPz2KUq8M/PN7kUBRp8ezGvKnD7f8ArCjT4OxRVgfsf5/pWFGPhzB59SsXRCxr8GoqqcEbPPvOoKNDg5lBUhTNp+QS9okCDu0NRFc6g9e+xHhbFWNjZK3+06OgFDZ4ORVXY0at/Aq8o0KBpKKrCTt75QhVFgQbNQ1EVdvDu13O9VBRjobIj32Hn6AUNXh6KqlDR0W9EVRRo8NZQVIVKeny/9ttFMRYq6PUl9I5e0ODQUFSFzHr+pImiQIPDQ1EVMur9A1mKAg26DEVVyGTEzy12K4qxkMGo3yR19IIGXYeiKqw08heuFQUadB+KqrDCyJpEKAo0GTIUVWGm0TWJGFgUY2GGGSOJcPSCJkOHoiqMNKsmEYoCTYYPRVUYYWZNIhQFmkwZiqrQ0+yaREwsirHQw4qRRDh6QZOpQ1EVjlhVkwhFgSbTh6IqvGNlTSIUBZosGYqq8IrVNYlYWBRjoUWGkUQ4ekGTpUNRFR7JUpMIRYEmy4eiKtySqSYRCYYCFaQYiqrwVbaaRCQZSoSx8L+MI4lINBTILNVQVOXcstYkItlQIKt0Q1GVc8pck4iEQ4kwlrPJPpKIpEOBbNIORVXOoUJNIhIPBTJJPRRV2VuVmkQkHwpkkX4oqrKnSjWJKDCUCGPZTbWRRBQZCqxWZiiqsoeKNYkoNBRYqdRQVKW2qjWJKDYUWKXcUFSlpso1iSg4lAhjqab6SCKKDgVmKzsUValhh5pEFB4KzFR6KKqS2y41iYj4s/oB9GIsjFS6KBF73K12tsvzs0VRdnkyyKt8UWCG/wDbR1eA9Q38QgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=202x176 at 0x2159313B2B0>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r = 100\n",
"\n",
"points = [(r*cos(i*pi/3), r*sin(i*pi/3)) for i in range(6)]\n",
"points_translated = [(p[0]+r, p[1]+r*sin(pi/3)) for p in points]\n",
"\n",
"im = Image.new(\"RGBA\", (2*r + 2, ceil(2*r*sin(pi/3)) + 2), (255, 255, 255, 255))\n",
"draw = ImageDraw.Draw(im)\n",
"for prev, pt in zip(points_translated, points_translated[1:] + [points_translated[0]]):\n",
" draw.line(prev + pt, width=2, fill=(0, 0, 0, 255))\n",
"im"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "b746c5b2",
"metadata": {},
"outputs": [],
"source": [
"terrain_to_rgb = {\n",
" \"sea\": (95, 125, 161),\n",
" \"city\": (178, 178, 178),\n",
" \"cropland\": (241, 212, 105),\n",
" \"hill\": (138, 88, 46),\n",
" \"mountain\": (123, 123, 78)\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "73d3025a",
"metadata": {},
"outputs": [],
"source": [
"def draw_base_hex(r):\n",
" points = [(r*cos(i*pi/3), r*sin(i*pi/3)) for i in range(6)]\n",
" points_translated = [(p[0]+r, p[1]+r*sin(pi/3)) for p in points]\n",
"\n",
" im = Image.new(\"RGBA\", (2*r + 2, ceil(2*r*sin(pi/3)) + 2), (255, 255, 255, 255))\n",
" draw = ImageDraw.Draw(im)\n",
" for prev, pt in zip(points_translated, points_translated[1:] + [points_translated[0]]):\n",
" draw.line(prev + pt, width=2, fill=(0, 0, 0, 255))\n",
" return im"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "f1318784",
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import display"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "4ec3aa37",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sea\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACwCAYAAABO3PEPAAAFRUlEQVR4nO3aQXLbRhRF0UdV9umVZJSVeKXMICVbkSmxSQLo/xvnDO0JXOyH22T5cr1er2nscrnMfgS+0fx4/fI2+wFeYST1rfIZ/TX7Abbw4++fsx+BG37+82P2I2ymbVHe31RGUt8KVWk7FOpb6SXWcihq0k/3qrQcCn2s8jJrNxQ16atzVVoNxUh6+vh5dR1Lq6HQV/eXW5uhqMk6OlalzVDor/NLrsVQ1GQ93arSYiiso+sX+/JDUZP1dPwsSw/FSNbXpSqlh8K6ur38yg5FTc6jQ1XKDoX1dXoJlhyKmpxP9aqUHArn0eXn4nJDUZPz6fBZlxqKkVC1KqWGwnlVfzmWGYqa8K5iVcoMBSp/sS8xFDXhXdUzUGIocEulqkwfiprwWcWzMHUoRsI9VaoyvShwS7WX57ShqAmjKlRFUSir0s/FU4aiJoyqckYUhTZmVuXwoagJj6pwVg4dipHwqllVcfWihdlf7A8biprwqplnR1Fo6eiqHDIUNWErs86QotDWkVXZfShqwtZmnKVDimIk7OWoquw6lNn/P4d1Hf1z8W5DceVib0eeLV/mWcLeVdllKGrCUY46Y4rCMvasyuZDUROOdsRZUxSWsldVNh2KmjDL3j8XbzYUI2G2Pc+eqxdL2roqmwxFTahirzOoKCxry6q8PBQ1oZo9vtgrCkva+sX90lDUhA62qMrTQzESqtvybLp6cQqvVuWpoagJXWx1RhWF03ilKg8PRU3oZoufixWFU3j1xf7QUNSEFTxTleGhGAndvXJ2Xb04pUerMjQUNWEVz36xVxRO55kX/t2hqAkrG62KonBKj774vx2KmnAGI1X5cihGwuoeOduuXpD7Vbk5FDXhLEZ/LlYUTm8kCH8MRU04s6+qoiiQ+2H431DUBG5X5e3zXxoJZ/XdF3tXL/jgq1C8JWoCt3ysiqLAJ7eC8aYm8LX3fSgK3PA5HG+3/hD47XK5/DeUn//8mP0sUNb1enX1ghFv1+s1iarAR+97eN+HosCAt+T3alQF/qxJoigw5NdQVAVu1yT5VBRj4cy+Gkni6gVD/hiKqnBG39UkURQYcnMoqsKZ3KtJoigw5MuhqApnMFKT5E5RjIWVjY4kcfWCIXeHoiqs6JGaJIoCQ4aGoiqs5NGaJIoCQ4aHoiqs4JmaJA8WxVjo7NmRJK5eMOThoagKHb1Sk0RRYMhTQ1EVOnm1JskLRTEWOthiJImrFwx5aSiqQmVb1SRRFBjy8lBUhYq2rEmiKDBkk6GoCpVsXZNkw6IYCxXsMZLE1QuGbDoUVWGmvWqSKAoM2XwoqsIMe9YkURQYsstQVIUj7V2TZMeiGAtHOGIkiasXDNl1KKrCno6qSaIoMGT3oagKeziyJomiwJBDhqIqbOnomiQHFsVY2MKMkSSuXjDk0KGoCq+YVZNEUWDI4UNRFZ4xsyaJosCQKUNRFR4xuybJxKIYCyMqjCRx9YIhU4eiKnynSk0SRYEh04eiKtxSqSZJgaFAByWGoip8VK0mSZGhJMbCfyqOJCk0FKis1FBU5dyq1iQpNhSoqtxQVOWcKtckKTiUxFjOpvpIkqJDgWrKDkVVzqFDTZLCQ4FKSg9FVdbWpSZJ8aFAFeWHoipr6lSTpMFQEmNZTbeRJE2GArO1GYqqrKFjTZJGQ4GZWg1FVXrrWpOk2VBglnZDUZWeOtckaTiUxFi66T6SpOlQ4Ghth6IqPaxQk6TxUOBIrYeiKrWtUpMkuVyb/ysul8vsR+CO5kcsSfOiJGt8CCtb5fP5a/YDbGGVD4O62hcFjvAv40Nf9mG6YWEAAAAASUVORK5CYII=\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=202x176 at 0x2159447F640>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"city\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACwCAYAAABO3PEPAAAFQUlEQVR4nO3aQXLbOBRF0SdXr8+LzQbVgy4nbke2IIkk/gfPGSYTpoTHC6lyuV6v1zR2uVxmPwI/aH68fnub/QCvMJL6VvmM/pn9AFv49evX7Efghvf399mPsJm2Rfl4UxlJfStUpe1QqG+ll1jLoahJP92r0nIo9LHKy6zdUNSkr85VaTUUI+np8+fVdSythkJf3V9ubYaiJuvoWJU2Q6G/zi+5FkNRk/V0q0qLobCOrl/syw9FTdbT8bMsPRQjWV+XqpQeCuvq9vIrOxQ1OY8OVSk7FNbX6SVYcihqcj7Vq1JyKJxHl5+Lyw1FTc6nw2ddaihGQtWqlBoK51X95VhmKGrCh4pVKTMUqPzFvsRQ1IQPVc9AiaHALZWqMn0oasJXFc/C1KEYCfdUqcr0osAt1V6e04aiJoyqUBVFoaxKPxdPGYqaMKrKGVEU2phZlcOHoiY8qsJZOXQoRsKrZlXF1YsWZn+xP2woasKrZp4dRaGlo6tyyFDUhK3MOkOKQltHVmX3oagJW5txlg4pipGwl6OqsutQZv//HNZ19M/Fuw3FlYu9HXm2fJlnCXtXZZehqAlHOeqMKQrL2LMqmw9FTTjaEWdNUVjKXlXZdChqwix7/1y82VCMhNn2PHuuXixp66psMhQ1oYq9zqCisKwtq/LyUNSEavb4Yq8oLGnrF/dLQ1ETOtiiKk8PxUiobsuz6erFKbxalaeGoiZ0sdUZVRRO45WqPDwUNaGbLX4uVhRO4dUX+0NDURNW8ExVhodiJHT3ytl19eKUHq3K0FDUhFU8+8VeUTidZ174d4eiJqxstCqKwik9+uL/cShqwhmMVOXboRgJq3vkbLt6Qe5X5eZQ1ISzGP25WFE4vZEg/DUUNeHMvquKokDuh+F/Q1ETuF2Vt69/aSSc1U9f7F294JPvQvGWqAnc8rkqigJf3ArGm5rA9z72oShww9dwvN36Q+CPy+Xy31De399nPwuUdb1eXb1gxNv1ek2iKvDZxx4+9qEoMOAt+bMaVYG/a5IoCgz5PRRVgds1Sb4UxVg4s+9Gkrh6wZC/hqIqnNFPNUkUBYbcHIqqcCb3apIoCgz5diiqwhmM1CS5UxRjYWWjI0lcvWDI3aGoCit6pCaJosCQoaGoCit5tCaJosCQ4aGoCit4pibJg0UxFjp7diSJqxcMeXgoqkJHr9QkURQY8tRQVIVOXq1J8kJRjIUOthhJ4uoFQ14aiqpQ2VY1SRQFhrw8FFWhoi1rkigKDNlkKKpCJVvXJNmwKMZCBXuMJHH1giGbDkVVmGmvmiSKAkM2H4qqMMOeNUkUBYbsMhRV4Uh71yTZsSjGwhGOGEni6gVDdh2KqrCno2qSKAoM2X0oqsIejqxJoigw5JChqApbOromyYFFMRa2MGMkiasXDDl0KKrCK2bVJFEUGHL4UFSFZ8ysSaIoMGTKUFSFR8yuSTKxKMbCiAojSVy9YMjUoagKP6lSk0RRYMj0oagKt1SqSVJgKNBBiaGoCp9Vq0lSZCiJsfCfiiNJCg0FKis1FFU5t6o1SYoNBaoqNxRVOafKNUkKDiUxlrOpPpKk6FCgmrJDUZVz6FCTpPBQoJLSQ1GVtXWpSVJ8KFBF+aGoypo61SRpMJTEWFbTbSRJk6HAbG2Goipr6FiTpNFQYKZWQ1GV3rrWJGk2FJil3VBUpafONUkaDiUxlm66jyRpOhQ4WtuhqEoPK9QkaTwUOFLroahKbavUJEku1+b/isvlMvsRuKP5EUvSvCjJGh/Cylb5fP6Z/QBbWOXDoK72RYEj/Atl5V9dbNIqCwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=202x176 at 0x21594678340>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cropland\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACwCAYAAABO3PEPAAAFSUlEQVR4nO3awXEbRxRF0QeW9kpEiTkiJeZEHAG8UNGiKZBsADPT//ecs5Q2o0K/uQ2ULtfr9ZrGLpfL7EfgE82P139eZj/AM4ykvlU+o2+zH2AL//z91+xH4IbvP37OfoTNtC3K65vKSOpboSpth0J9K73EWg5FTfrpXpWWQ6GPVV5m7YaiJn11rkqroRhJT28/r65jaTUU+ur+cmszFDVZR8eqtBkK/XV+ybUYipqsp1tVWgyFdXT9Yl9+KGqyno6fZemhGMn6ulSl9FBYV7eXX9mhqMl5dKhK2aGwvk4vwZJDUZPzqV6VkkPhPLr8XFxuKGpyPh0+61JDMRKqVqXUUDiv6i/HMkNRE15VrEqZoUDlL/YlhqImvKp6BkoMBW6pVJXpQ1ET3qt4FqYOxUj4SpWqTC8K3FLt5TltKGrCqApVURTKqvRz8ZShqAmjqpwRRaGNmVU5fChqwr0qnJVDh2IkPGtWVVy9aGH2F/vDhqImPGvm2VEUWjq6KocMRU3YyqwzpCi0dWRVdh+KmrC1GWfpkKIYCXs5qiq7DmX2/89hXUf/XLzbUFy52NuRZ8uXeZawd1V2GYqacJSjzpiisIw9q7L5UNSEox1x1hSFpexVlU2HoibMsvfPxZsNxUiYbc+z5+rFkrauyiZDUROq2OsMKgrL2rIqTw9FTahmjy/2isKStn5xPzUUNaGDLary8FCMhOq2PJuuXpzCs1V5aChqQhdbnVFF4TSeqcrdQ1ETutni52JF4RSefbHfNRQ1YQWPVGV4KEZCd8+cXVcvTuneqgwNRU1YxaNf7BWF03nkhf/lUNSElY1WRVE4pXtf/J8ORU04g5GqfDgUI2F195xtVy/I11W5ORQ14SxGfy5WFE5vJAh/DEVNOLOPqqIokK/D8L+hqAncrsrL+780Es7qsy/2rl7wxkeheEnUBG55WxVFgXduBeNFTeBjr/tQFLjhfThebv0h8Nvlcvk1lO8/fs5+Fijrer26esGIl+v1mkRV4K3XPbzuQ1FgwEvyezWqAn/WJFEUGPLfUFQFbtckeVcUY+HMPhpJ4uoFQ/4YiqpwRp/VJFEUGHJzKKrCmXxVk0RRYMiHQ1EVzmCkJskXRTEWVjY6ksTVC4Z8ORRVYUX31CRRFBgyNBRVYSX31iRRFBgyPBRVYQWP1CS5syjGQmePjiRx9YIhdw9FVejomZokigJDHhqKqtDJszVJniiKsdDBFiNJXL1gyFNDURUq26omiaLAkKeHoipUtGVNEkWBIZsMRVWoZOuaJBsWxVioYI+RJK5eMGTToagKM+1Vk0RRYMjmQ1EVZtizJomiwJBdhqIqHGnvmiQ7FsVYOMIRI0lcvWDIrkNRFfZ0VE0SRYEhuw9FVdjDkTVJFAWGHDIUVWFLR9ckObAoxsIWZowkcfWCIYcORVV4xqyaJIoCQw4fiqrwiJk1SRQFhkwZiqpwj9k1SSYWxVgYUWEkiasXDJk6FFXhM1VqkigKDJk+FFXhlko1SQoMBTooMRRV4a1qNUmKDCUxFn6pOJKk0FCgslJDUZVzq1qTpNhQoKpyQ1GVc6pck6TgUBJjOZvqI0mKDgWqKTsUVTmHDjVJCg8FKik9FFVZW5eaJMWHAlWUH4qqrKlTTZIGQ0mMZTXdRpI0GQrM1mYoqrKGjjVJGg0FZmo1FFXprWtNkmZDgVnaDUVVeupck6ThUBJj6ab7SJKmQ4GjtR2KqvSwQk2SxkOBI7UeiqrUtkpNkuRybf6vuFwusx+BLzQ/YkmaFyVZ40NY2Sqfz7fZD7CFVT4M6mpfFDjCv1G9X0Xj0SWCAAAAAElFTkSuQmCC\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=202x176 at 0x2159447F5B0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"hill\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACwCAYAAABO3PEPAAAFSklEQVR4nO3awXEbRxRF0QeW4nE8jsRBOBLFo4TghYoSTYFkA5iZ/r/nnKW0GRX6zW2gdLler9c0drlcZj8Cn2h+vH55mf0AzzCS+lb5jL7NfoAt/Pv3X7MfgRv++f5j9iNspm1RXt9URlLfClVpOxTqW+kl1nIoatJP96q0HAp9rPIyazcUNemrc1VaDcVIenr7eXUdS6uh0Ff3l1uboajJOjpWpc1Q6K/zS67FUNRkPd2q0mIorKPrF/vyQ1GT9XT8LEsPxUjW16UqpYfCurq9/MoORU3Oo0NVyg6F9XV6CZYcipqcT/WqlBwK59Hl5+JyQ1GT8+nwWZcaipFQtSqlhsJ5VX85lhmKmvCqYlXKDAUqf7EvMRQ14VXVM1BiKHBLpapMH4qa8F7FszB1KEbCV6pUZXpR4JZqL89pQ1ETRlWoiqJQVqWfi6cMRU0YVeWMKAptzKzK4UNRE+5V4awcOhQj4VmzquLqRQuzv9gfNhQ14Vkzz46i0NLRVTlkKGrCVmadIUWhrSOrsvtQ1IStzThLhxTFSNjLUVXZdSiz/38O6zr65+LdhuLKxd6OPFu+zLOEvauyy1DUhKMcdcYUhWXsWZXNh6ImHO2Is6YoLGWvqmw6FDVhlr1/Lt5sKEbCbHuePVcvlrR1VTYZippQxV5nUFFY1pZVeXooakI1e3yxVxSWtPWL+6mhqAkdbFGVh4diJFS35dl09eIUnq3KQ0NRE7rY6owqCqfxTFXuHoqa0M0WPxcrCqfw7Iv9rqGoCSt4pCrDQzESunvm7Lp6cUr3VmVoKGrCKh79Yq8onM4jL/wvh6ImrGy0KorCKd374v90KGrCGYxU5cOhGAmru+dsu3pBvq7KzaGoCWcx+nOxonB6I0H4Yyhqwpl9VBVFgXwdhv8NRU3gdlVe3v+lkXBWn32xd/WCNz4KxUuiJnDL26ooCrxzKxgvagIfe92HosAN78PxcusPgd8ul8vPofzz/cfsZ4GyrterqxeMeLler0lUBd563cPrPhQFBrwkv1ejKvBnTRJFgSG/hqIqcLsmybuiGAtn9tFIElcvGPLHUFSFM/qsJomiwJCbQ1EVzuSrmiSKAkM+HIqqcAYjNUm+KIqxsLLRkSSuXjDky6GoCiu6pyaJosCQoaGoCiu5tyaJosCQ4aGoCit4pCbJnUUxFjp7dCSJqxcMuXsoqkJHz9QkURQY8tBQVIVOnq1J8kRRjIUOthhJ4uoFQ54aiqpQ2VY1SRQFhjw9FFWhoi1rkigKDNlkKKpCJVvXJNmwKMZCBXuMJHH1giGbDkVVmGmvmiSKAkM2H4qqMMOeNUkUBYbsMhRV4Uh71yTZsSjGwhGOGEni6gVDdh2KqrCno2qSKAoM2X0oqsIejqxJoigw5JChqApbOromyYFFMRa2MGMkiasXDDl0KKrCM2bVJFEUGHL4UFSFR8ysSaIoMGTKUFSFe8yuSTKxKMbCiAojSVy9YMjUoagKn6lSk0RRYMj0oagKt1SqSVJgKNBBiaGoCm9Vq0lSZCiJsfBTxZEkhYYClZUaiqqcW9WaJMWGAlWVG4qqnFPlmiQFh5IYy9lUH0lSdChQTdmhqMo5dKhJUngoUEnpoajK2rrUJCk+FKii/FBUZU2dapI0GEpiLKvpNpKkyVBgtjZDUZU1dKxJ0mgoMFOroahKb11rkjQbCszSbiiq0lPnmiQNh5IYSzfdR5I0HQocre1QVKWHFWqSNB4KHKn1UFSltlVqkiSXa/N/xeVymf0IfKH5EUvSvCjJGh/Cylb5fL7NfoAtrPJhUFf7osAR/gPmdmBjCYFnqgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=202x176 at 0x21594678340>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"mountain\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACwCAYAAABO3PEPAAAFRUlEQVR4nO3aQXLbOBRF0SdX1tcbytgbygbVg5TTbke2IYkk/gfPGSYTpoTHC6lyuV6v1zR2uVxmPwJfaH68/niZ/QDPMJL6VvmMfsx+gC38/PnP7EfghtfXX7MfYTNti/L2pjKS+laoStuhUN9KL7GWQ1GTfrpXpeVQ6GOVl1m7oahJX52r0mooRtLT+8+r61haDYW+ur/c2gxFTdbRsSpthkJ/nV9yLYaiJuvpVpUWQ2EdXb/Ylx+Kmqyn42dZeihGsr4uVSk9FNbV7eVXdihqch4dqlJ2KKyv00uw5FDU5HyqV6XkUDiPLj8XlxuKmpxPh8+61FCMhKpVKTUUzqv6y7HMUNSENxWrUmYoUPmLfYmhqAlvqp6BEkOBWypVZfpQ1ISPKp6FqUMxEr5TpSrTiwK3VHt5ThuKmjCqQlUUhbIq/Vw8ZShqwqgqZ0RRaGNmVQ4fippwrwpn5dChGAnPmlUVVy9amP3F/rChqAnPmnl2FIWWjq7KIUNRE7Yy6wwpCm0dWZXdh6ImbG3GWTqkKEbCXo6qyq5Dmf3/c1jX0T8X7zYUVy72duTZ8mWeJexdlV2GoiYc5agzpigsY8+qbD4UNeFoR5w1RWEpe1Vl06GoCbPs/XPxZkMxEmbb8+y5erGkrauyyVDUhCr2OoOKwrK2rMrTQ1ETqtnji72isKStX9xPDUVN6GCLqjw8FCOhui3PpqsXp/BsVR4aiprQxVZnVFE4jWeqcvdQ1IRutvi5WFE4hWdf7HcNRU1YwSNVGR6KkdDdM2fX1YtTurcqQ0NRE1bx6Bd7ReF0HnnhfzsUNWFlo1VRFE7p3hf/l0NRE85gpCqfDsVIWN09Z9vVC/J9VW4ORU04i9GfixWF0xsJwl9DURPO7LOqKArk+zD8byhqArer8vLxL42Es/rqi72rF7zzWSheEjWBW95XRVHgg1vBeFET+NzbPhQFbvgYjpdbfwj853K5/B7K6+uv2c8CZV2vV1cvGPFyvV6TqAq897aHt30oCgx4Sf5bjarA3zVJFAWG/BmKqsDtmiQfimIsnNlnI0lcvWDIX0NRFc7oq5okigJDbg5FVTiT72qSKAoM+XQoqsIZjNQk+aYoxsLKRkeSuHrBkG+Hoiqs6J6aJIoCQ4aGoiqs5N6aJIoCQ4aHoiqs4JGaJHcWxVjo7NGRJK5eMOTuoagKHT1Tk0RRYMhDQ1EVOnm2JskTRTEWOthiJImrFwx5aiiqQmVb1SRRFBjy9FBUhYq2rEmiKDBkk6GoCpVsXZNkw6IYCxXsMZLE1QuGbDoUVWGmvWqSKAoM2XwoqsIMe9YkURQYsstQVIUj7V2TZMeiGAtHOGIkiasXDNl1KKrCno6qSaIoMGT3oagKeziyJomiwJBDhqIqbOnomiQHFsVY2MKMkSSuXjDk0KGoCs+YVZNEUWDI4UNRFR4xsyaJosCQKUNRFe4xuybJxKIYCyMqjCRx9YIhU4eiKnylSk0SRYEh04eiKtxSqSZJgaFAByWGoiq8V60mSZGhJMbCbxVHkhQaClRWaiiqcm5Va5IUGwpUVW4oqnJOlWuSFBxKYixnU30kSdGhQDVlh6Iq59ChJknhoUAlpYeiKmvrUpOk+FCgivJDUZU1dapJ0mAoibGspttIkiZDgdnaDEVV1tCxJkmjocBMrYaiKr11rUnSbCgwS7uhqEpPnWuSNBxKYizddB9J0nQocLS2Q1GVHlaoSdJ4KHCk1kNRldpWqUmSXK7N/xWXy2X2I/CN5kcsSfOiJGt8CCtb5fP5MfsBtrDKh0Fd7YsCR/gXEX9gL7OpyQsAAAAASUVORK5CYII=\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=202x176 at 0x2159447F8B0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for terrain, rgb in terrain_to_rgb.items():\n",
" im = draw_base_hex(100)\n",
" ImageDraw.floodfill(im, (r, r*(sin(pi/3))), (rgb[0], rgb[1], rgb[2], 255))\n",
" print(terrain)\n",
" display(im)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2b75cb27",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment