Skip to content

Instantly share code, notes, and snippets.

@fullcontrol-xyz
Last active May 1, 2023 13:02
Show Gist options
  • Save fullcontrol-xyz/5750164480a5dba1de1b73f86ecb0a30 to your computer and use it in GitHub Desktop.
Save fullcontrol-xyz/5750164480a5dba1de1b73f86ecb0a30 to your computer and use it in GitHub Desktop.
polar_offset_demo.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/fullcontrol-xyz/5750164480a5dba1de1b73f86ecb0a30/polar_offset_demo.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ac9_FmrCOwQL"
},
"source": [
"# polar offset demo\n",
"\n",
"press ctrl+F9 to run all cells in this notebook, or press shift+enter to run each cell sequentially \n",
" \n",
"if you change one of the code cells, make sure you run it and all subsequent cells again (in order)\n",
" \n",
"*this document is a jupyter notebook - if they're new to you, check out how they work: [link](https://www.google.com/search?q=ipynb+tutorial), [link](https://jupyter.org/try-jupyter/retro/notebooks/?path=notebooks/Intro.ipynb), [link](https://colab.research.google.com/)*"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XVYUcd_RO3BD"
},
"source": [
"### be patient :)\n",
"\n",
"the next code cell may take a while because running it causes several things to happen:\n",
"- connect to a google colab server -> download the fullcontrol code -> install the fullcontrol code\n",
"\n",
"check out [other tutorials](https://github.com/FullControlXYZ/fullcontrol/blob/master/docs/README.md) to understand the python code for the FullControl design"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "57XXnogSOvDx",
"outputId": "18ce465f-8a9d-40c8-a8be-1c86667f72de",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
" Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
" Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
" Building wheel for fullcontrol (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n"
]
}
],
"source": [
"!pip install git+https://github.com/FullControlXYZ/fullcontrol --quiet\n",
"import fullcontrol as fc\n",
"from google.colab import files"
]
},
{
"cell_type": "code",
"source": [
"from math import radians, degrees\n",
"import lab.fullcontrol as fclab\n",
"\n",
"def offset_path(points: list, offset: float, flip: bool = False) -> list:\n",
" if flip: offset = -offset\n",
" offset_lines = []\n",
" for i in range(len(points)-1):\n",
" line = [points[i], points[i+1]]\n",
" line_direction = fc.point_to_polar(line[1], line[0]).angle\n",
" offset_line_direction = line_direction + radians(90)\n",
" vector = fc.polar_to_vector(offset, offset_line_direction)\n",
" offset_lines.append(fc.move(line, vector))\n",
"\n",
" offset_lines = [offset_lines[-1]] + offset_lines + [offset_lines[0]]\n",
" intersection_points = []\n",
" for i in range(len(offset_lines)-1):\n",
" intersection_points.append(fclab.line_intersection_by_points_XY(offset_lines[i][0], offset_lines[i][1], offset_lines[i+1][0], offset_lines[i+1][1]))\n",
" return intersection_points\n",
"\n",
"points = [fc.Point(x=50, y=30, z=0), fc.Point(x=30, y=50, z=0), fc.Point(x=50, y=70, z=0), fc.Point(x=70, y=50, z=0), fc.Point(x=50, y=30, z=0)]\n",
"points = fc.polygonXY(fc.Point(x=50, y=50, z=0), 30, 0, 6)\n",
"offset = 0.5\n",
"steps = []\n",
"steps.extend(points)\n",
"for i in range(10):\n",
" steps.extend(offset_path(points, offset*i, flip=True))\n",
"\n",
"fc.transform(steps , 'plot', fc.PlotControls(color_type='print_sequence'))"
],
"metadata": {
"id": "aOj3u4MrkyRS",
"outputId": "d750f5a6-77f3-43c6-dd77-35422f3b274a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
}
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-2.18.2.min.js\"></script> <div id=\"d70ee019-1411-42ae-9836-b27d721d3806\" class=\"plotly-graph-div\" style=\"height:500px; width:800px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"d70ee019-1411-42ae-9836-b27d721d3806\")) { Plotly.newPlot( \"d70ee019-1411-42ae-9836-b27d721d3806\", [{\"line\":{\"color\":[\"rgb(204.00, 0.00, 255.00)\",\"rgb(198.65, 0.00, 255.00)\",\"rgb(193.29, 0.00, 255.00)\",\"rgb(188.19, 0.00, 255.00)\",\"rgb(182.83, 0.00, 255.00)\",\"rgb(177.48, 0.00, 255.00)\",\"rgb(172.12, 0.00, 255.00)\",\"rgb(167.03, 0.00, 255.00)\",\"rgb(161.67, 0.00, 255.00)\",\"rgb(156.31, 0.00, 255.00)\",\"rgb(150.96, 0.00, 255.00)\",\"rgb(145.60, 0.00, 255.00)\",\"rgb(140.51, 0.00, 255.00)\",\"rgb(135.15, 0.00, 255.00)\",\"rgb(129.80, 0.00, 255.00)\",\"rgb(124.44, 0.00, 255.00)\",\"rgb(119.34, 0.00, 255.00)\",\"rgb(113.98, 0.00, 255.00)\",\"rgb(108.63, 0.00, 255.00)\",\"rgb(103.28, 0.00, 255.00)\",\"rgb(97.92, 0.00, 255.00)\",\"rgb(92.82, 0.00, 255.00)\",\"rgb(87.47, 0.00, 255.00)\",\"rgb(82.11, 0.00, 255.00)\",\"rgb(76.75, 0.00, 255.00)\",\"rgb(71.66, 0.00, 255.00)\",\"rgb(66.30, 0.00, 255.00)\",\"rgb(60.95, 0.00, 255.00)\",\"rgb(55.59, 0.00, 255.00)\",\"rgb(50.23, 0.00, 255.00)\",\"rgb(45.13, 0.00, 255.00)\",\"rgb(39.78, 0.00, 255.00)\",\"rgb(34.43, 0.00, 255.00)\",\"rgb(29.07, 0.00, 255.00)\",\"rgb(23.97, 0.00, 255.00)\",\"rgb(18.61, 0.00, 255.00)\",\"rgb(13.26, 0.00, 255.00)\",\"rgb(7.91, 0.00, 255.00)\",\"rgb(2.55, 0.00, 255.00)\",\"rgb(0.00, 3.31, 255.00)\",\"rgb(0.00, 9.95, 255.00)\",\"rgb(0.00, 16.57, 255.00)\",\"rgb(0.00, 23.20, 255.00)\",\"rgb(0.00, 29.84, 255.00)\",\"rgb(0.00, 36.46, 255.00)\",\"rgb(0.00, 43.10, 255.00)\",\"rgb(0.00, 49.73, 255.00)\",\"rgb(0.00, 56.36, 255.00)\",\"rgb(0.00, 62.98, 255.00)\",\"rgb(0.00, 69.62, 255.00)\",\"rgb(0.00, 76.24, 255.00)\",\"rgb(0.00, 82.88, 255.00)\",\"rgb(0.00, 89.50, 255.00)\",\"rgb(0.00, 96.14, 255.00)\",\"rgb(0.00, 102.77, 255.00)\",\"rgb(0.00, 109.39, 255.00)\",\"rgb(0.00, 116.03, 255.00)\",\"rgb(0.00, 122.66, 255.00)\",\"rgb(0.00, 129.03, 255.00)\",\"rgb(0.00, 135.66, 255.00)\",\"rgb(0.00, 142.29, 255.00)\",\"rgb(0.00, 148.92, 255.00)\",\"rgb(0.00, 155.55, 255.00)\",\"rgb(0.00, 162.18, 255.00)\",\"rgb(0.00, 168.81, 255.00)\",\"rgb(0.00, 175.44, 255.00)\",\"rgb(0.00, 182.07, 255.00)\",\"rgb(0.00, 188.70, 255.00)\",\"rgb(0.00, 195.33, 255.00)\",\"rgb(0.00, 201.96, 255.00)\",\"rgb(0.00, 208.59, 255.00)\",\"rgb(0.00, 215.22, 255.00)\",\"rgb(0.00, 221.85, 255.00)\",\"rgb(0.00, 228.48, 255.00)\",\"rgb(0.00, 235.11, 255.00)\",\"rgb(0.00, 241.74, 255.00)\",\"rgb(0.00, 248.37, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[80.0,65.0,35.0,20.0,35.0,65.0,80.0,80.0,65.0,35.0,20.0,35.0,65.0,80.0,80.577,65.289,34.711,19.423,34.711,65.289,80.577,81.155,65.577,34.423,18.845,34.423,65.577,81.155,81.732,65.866,34.134,18.268,34.134,65.866,81.732,82.309,66.155,33.845,17.691,33.845,66.155,82.309,82.887,66.443,33.557,17.113,33.557,66.443,82.887,83.464,66.732,33.268,16.536,33.268,66.732,83.464,84.041,67.021,32.979,15.959,32.979,67.021,84.041,84.619,67.309,32.691,15.381,32.691,67.309,84.619,85.196,67.598,32.402,14.804,32.402,67.598,85.196],\"y\":[50.0,75.981,75.981,50.0,24.019,24.019,50.0,50.0,75.981,75.981,50.0,24.019,24.019,50.0,50.0,76.481,76.481,50.0,23.519,23.519,50.0,50.0,76.981,76.981,50.0,23.019,23.019,50.0,50.0,77.481,77.481,50.0,22.519,22.519,50.0,50.0,77.981,77.981,50.0,22.019,22.019,50.0,50.0,78.481,78.481,50.0,21.519,21.519,50.0,50.0,78.981,78.981,50.0,21.019,21.019,50.0,50.0,79.481,79.481,50.0,20.519,20.519,50.0,50.0,79.981,79.981,50.0,20.019,20.019,50.0,50.0,80.481,80.481,50.0,19.519,19.519,50.0],\"z\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"type\":\"scatter3d\"},{\"marker\":{\"color\":\"red\",\"size\":2},\"mode\":\"markers\",\"showlegend\":false,\"x\":[],\"y\":[],\"z\":[],\"type\":\"scatter3d\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[14.80284757729337,85.19715242270664]},\"yaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[14.80284757729337,85.19715242270664]},\"zaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[0,70.39430484541326]},\"camera\":{\"eye\":{\"x\":-0.5,\"y\":-1.0,\"z\":0.0},\"center\":{\"x\":0,\"y\":0,\"z\":-0.5}},\"aspectmode\":\"cube\"},\"margin\":{\"l\":10,\"r\":10,\"b\":10,\"t\":10,\"pad\":4},\"paper_bgcolor\":\"black\",\"width\":800,\"height\":500}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('d70ee019-1411-42ae-9836-b27d721d3806');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
" # replace my_gist_url, my_module_name and my_function_name\n",
"gist_url = 'https://gist.github.com/fullcontrol-xyz/cfab0b802df07d621d7b5f0494f06505'\n",
"!git clone $gist_url imported_module --quiet\n",
"from imported_module.offset_path import offset_path_gist"
],
"metadata": {
"id": "6A6vaNNi1tiA"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"\n",
"points = [fc.Point(x=50, y=30, z=0), fc.Point(x=30, y=50, z=0), fc.Point(x=50, y=70, z=0), fc.Point(x=70, y=50, z=0), fc.Point(x=50, y=30, z=0)]\n",
"points = fc.polygonXY(fc.Point(x=50, y=50, z=0), 30, 0, 6)\n",
"offset = 0.5\n",
"steps = []\n",
"steps.extend(points)\n",
"for i in range(10):\n",
" steps.extend(offset_path_gist(points, offset*i, flip=True))\n",
"\n",
"fc.transform(steps , 'plot', fc.PlotControls(color_type='print_sequence'))"
],
"metadata": {
"id": "f_23_1zY13e5",
"outputId": "f9cc73e8-950e-48ea-8e54-b0f01f596d1b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
}
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-2.18.2.min.js\"></script> <div id=\"70b96646-0bfd-425c-a81a-23fb0481e5e5\" class=\"plotly-graph-div\" style=\"height:500px; width:800px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"70b96646-0bfd-425c-a81a-23fb0481e5e5\")) { Plotly.newPlot( \"70b96646-0bfd-425c-a81a-23fb0481e5e5\", [{\"line\":{\"color\":[\"rgb(204.00, 0.00, 255.00)\",\"rgb(198.65, 0.00, 255.00)\",\"rgb(193.29, 0.00, 255.00)\",\"rgb(188.19, 0.00, 255.00)\",\"rgb(182.83, 0.00, 255.00)\",\"rgb(177.48, 0.00, 255.00)\",\"rgb(172.12, 0.00, 255.00)\",\"rgb(167.03, 0.00, 255.00)\",\"rgb(161.67, 0.00, 255.00)\",\"rgb(156.31, 0.00, 255.00)\",\"rgb(150.96, 0.00, 255.00)\",\"rgb(145.60, 0.00, 255.00)\",\"rgb(140.51, 0.00, 255.00)\",\"rgb(135.15, 0.00, 255.00)\",\"rgb(129.80, 0.00, 255.00)\",\"rgb(124.44, 0.00, 255.00)\",\"rgb(119.34, 0.00, 255.00)\",\"rgb(113.98, 0.00, 255.00)\",\"rgb(108.63, 0.00, 255.00)\",\"rgb(103.28, 0.00, 255.00)\",\"rgb(97.92, 0.00, 255.00)\",\"rgb(92.82, 0.00, 255.00)\",\"rgb(87.47, 0.00, 255.00)\",\"rgb(82.11, 0.00, 255.00)\",\"rgb(76.75, 0.00, 255.00)\",\"rgb(71.66, 0.00, 255.00)\",\"rgb(66.30, 0.00, 255.00)\",\"rgb(60.95, 0.00, 255.00)\",\"rgb(55.59, 0.00, 255.00)\",\"rgb(50.23, 0.00, 255.00)\",\"rgb(45.13, 0.00, 255.00)\",\"rgb(39.78, 0.00, 255.00)\",\"rgb(34.43, 0.00, 255.00)\",\"rgb(29.07, 0.00, 255.00)\",\"rgb(23.97, 0.00, 255.00)\",\"rgb(18.61, 0.00, 255.00)\",\"rgb(13.26, 0.00, 255.00)\",\"rgb(7.91, 0.00, 255.00)\",\"rgb(2.55, 0.00, 255.00)\",\"rgb(0.00, 3.31, 255.00)\",\"rgb(0.00, 9.95, 255.00)\",\"rgb(0.00, 16.57, 255.00)\",\"rgb(0.00, 23.20, 255.00)\",\"rgb(0.00, 29.84, 255.00)\",\"rgb(0.00, 36.46, 255.00)\",\"rgb(0.00, 43.10, 255.00)\",\"rgb(0.00, 49.73, 255.00)\",\"rgb(0.00, 56.36, 255.00)\",\"rgb(0.00, 62.98, 255.00)\",\"rgb(0.00, 69.62, 255.00)\",\"rgb(0.00, 76.24, 255.00)\",\"rgb(0.00, 82.88, 255.00)\",\"rgb(0.00, 89.50, 255.00)\",\"rgb(0.00, 96.14, 255.00)\",\"rgb(0.00, 102.77, 255.00)\",\"rgb(0.00, 109.39, 255.00)\",\"rgb(0.00, 116.03, 255.00)\",\"rgb(0.00, 122.66, 255.00)\",\"rgb(0.00, 129.03, 255.00)\",\"rgb(0.00, 135.66, 255.00)\",\"rgb(0.00, 142.29, 255.00)\",\"rgb(0.00, 148.92, 255.00)\",\"rgb(0.00, 155.55, 255.00)\",\"rgb(0.00, 162.18, 255.00)\",\"rgb(0.00, 168.81, 255.00)\",\"rgb(0.00, 175.44, 255.00)\",\"rgb(0.00, 182.07, 255.00)\",\"rgb(0.00, 188.70, 255.00)\",\"rgb(0.00, 195.33, 255.00)\",\"rgb(0.00, 201.96, 255.00)\",\"rgb(0.00, 208.59, 255.00)\",\"rgb(0.00, 215.22, 255.00)\",\"rgb(0.00, 221.85, 255.00)\",\"rgb(0.00, 228.48, 255.00)\",\"rgb(0.00, 235.11, 255.00)\",\"rgb(0.00, 241.74, 255.00)\",\"rgb(0.00, 248.37, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[80.0,65.0,35.0,20.0,35.0,65.0,80.0,80.0,65.0,35.0,20.0,35.0,65.0,80.0,80.577,65.289,34.711,19.423,34.711,65.289,80.577,81.155,65.577,34.423,18.845,34.423,65.577,81.155,81.732,65.866,34.134,18.268,34.134,65.866,81.732,82.309,66.155,33.845,17.691,33.845,66.155,82.309,82.887,66.443,33.557,17.113,33.557,66.443,82.887,83.464,66.732,33.268,16.536,33.268,66.732,83.464,84.041,67.021,32.979,15.959,32.979,67.021,84.041,84.619,67.309,32.691,15.381,32.691,67.309,84.619,85.196,67.598,32.402,14.804,32.402,67.598,85.196],\"y\":[50.0,75.981,75.981,50.0,24.019,24.019,50.0,50.0,75.981,75.981,50.0,24.019,24.019,50.0,50.0,76.481,76.481,50.0,23.519,23.519,50.0,50.0,76.981,76.981,50.0,23.019,23.019,50.0,50.0,77.481,77.481,50.0,22.519,22.519,50.0,50.0,77.981,77.981,50.0,22.019,22.019,50.0,50.0,78.481,78.481,50.0,21.519,21.519,50.0,50.0,78.981,78.981,50.0,21.019,21.019,50.0,50.0,79.481,79.481,50.0,20.519,20.519,50.0,50.0,79.981,79.981,50.0,20.019,20.019,50.0,50.0,80.481,80.481,50.0,19.519,19.519,50.0],\"z\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"type\":\"scatter3d\"},{\"marker\":{\"color\":\"red\",\"size\":2},\"mode\":\"markers\",\"showlegend\":false,\"x\":[],\"y\":[],\"z\":[],\"type\":\"scatter3d\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[14.80284757729337,85.19715242270664]},\"yaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[14.80284757729337,85.19715242270664]},\"zaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[0,70.39430484541326]},\"camera\":{\"eye\":{\"x\":-0.5,\"y\":-1.0,\"z\":0.0},\"center\":{\"x\":0,\"y\":0,\"z\":-0.5}},\"aspectmode\":\"cube\"},\"margin\":{\"l\":10,\"r\":10,\"b\":10,\"t\":10,\"pad\":4},\"paper_bgcolor\":\"black\",\"width\":800,\"height\":500}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('70b96646-0bfd-425c-a81a-23fb0481e5e5');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"points = fc.squarewaveXYpolar(fc.Point(x=0, y=0, z=0), 0, 10, 10, 10)\n",
"points.extend(fc.squarewaveXYpolar(fc.Point(x=190.00001, y=-10, z=0), -radians(180), 10, 10, 10)) \n",
"# the tiny offset in x above avoids parallel lines, which cause an error for the offset_path function developed in this notebook. \n",
"# this offset is not necessary if using the polar_offset function from lab.fullcontrol since it can handle parallel lines.\n",
"points.append(points[0])\n",
"\n",
"offset = 0.4\n",
"steps = []\n",
"steps.extend(points)\n",
"for i in range(13):\n",
" steps.extend(offset_path(points, offset*i, flip=False))\n",
"steps.extend(points)\n",
"# # uncomment the next two lines to fill the middle section of the next plot\n",
"# for i in range(13):\n",
"# steps.extend(offset_path(points, offset*i, flip=True))\n",
"\n",
"fc.transform(steps, 'plot', fc.PlotControls(color_type='print_sequence'))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
},
"id": "vWlCvvY2Fjqc",
"outputId": "f156d6d7-ebb4-46c0-89cb-fe197e0737cd"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script src=\"https://cdn.plot.ly/plotly-2.18.2.min.js\"></script> <div id=\"67fbfd06-74de-4f4b-86ea-0c0174d75636\" class=\"plotly-graph-div\" style=\"height:500px; width:800px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"67fbfd06-74de-4f4b-86ea-0c0174d75636\")) { Plotly.newPlot( \"67fbfd06-74de-4f4b-86ea-0c0174d75636\", [{\"line\":{\"color\":[\"rgb(204.00, 0.00, 255.00)\",\"rgb(203.75, 0.00, 255.00)\",\"rgb(203.24, 0.00, 255.00)\",\"rgb(202.98, 0.00, 255.00)\",\"rgb(202.73, 0.00, 255.00)\",\"rgb(202.22, 0.00, 255.00)\",\"rgb(201.96, 0.00, 255.00)\",\"rgb(201.71, 0.00, 255.00)\",\"rgb(201.20, 0.00, 255.00)\",\"rgb(200.94, 0.00, 255.00)\",\"rgb(200.69, 0.00, 255.00)\",\"rgb(200.43, 0.00, 255.00)\",\"rgb(199.92, 0.00, 255.00)\",\"rgb(199.67, 0.00, 255.00)\",\"rgb(199.41, 0.00, 255.00)\",\"rgb(198.90, 0.00, 255.00)\",\"rgb(198.65, 0.00, 255.00)\",\"rgb(198.39, 0.00, 255.00)\",\"rgb(197.88, 0.00, 255.00)\",\"rgb(197.62, 0.00, 255.00)\",\"rgb(197.37, 0.00, 255.00)\",\"rgb(196.86, 0.00, 255.00)\",\"rgb(196.61, 0.00, 255.00)\",\"rgb(196.35, 0.00, 255.00)\",\"rgb(195.84, 0.00, 255.00)\",\"rgb(195.59, 0.00, 255.00)\",\"rgb(195.33, 0.00, 255.00)\",\"rgb(194.82, 0.00, 255.00)\",\"rgb(194.56, 0.00, 255.00)\",\"rgb(194.31, 0.00, 255.00)\",\"rgb(193.80, 0.00, 255.00)\",\"rgb(193.55, 0.00, 255.00)\",\"rgb(193.29, 0.00, 255.00)\",\"rgb(193.03, 0.00, 255.00)\",\"rgb(192.53, 0.00, 255.00)\",\"rgb(192.27, 0.00, 255.00)\",\"rgb(192.02, 0.00, 255.00)\",\"rgb(191.50, 0.00, 255.00)\",\"rgb(191.25, 0.00, 255.00)\",\"rgb(191.00, 0.00, 255.00)\",\"rgb(190.48, 0.00, 255.00)\",\"rgb(190.23, 0.00, 255.00)\",\"rgb(189.97, 0.00, 255.00)\",\"rgb(189.47, 0.00, 255.00)\",\"rgb(189.21, 0.00, 255.00)\",\"rgb(188.95, 0.00, 255.00)\",\"rgb(188.44, 0.00, 255.00)\",\"rgb(188.19, 0.00, 255.00)\",\"rgb(187.94, 0.00, 255.00)\",\"rgb(187.42, 0.00, 255.00)\",\"rgb(187.17, 0.00, 255.00)\",\"rgb(186.91, 0.00, 255.00)\",\"rgb(186.66, 0.00, 255.00)\",\"rgb(186.15, 0.00, 255.00)\",\"rgb(185.89, 0.00, 255.00)\",\"rgb(185.64, 0.00, 255.00)\",\"rgb(185.13, 0.00, 255.00)\",\"rgb(184.88, 0.00, 255.00)\",\"rgb(184.62, 0.00, 255.00)\",\"rgb(184.11, 0.00, 255.00)\",\"rgb(183.85, 0.00, 255.00)\",\"rgb(183.60, 0.00, 255.00)\",\"rgb(183.09, 0.00, 255.00)\",\"rgb(182.83, 0.00, 255.00)\",\"rgb(182.58, 0.00, 255.00)\",\"rgb(182.07, 0.00, 255.00)\",\"rgb(181.81, 0.00, 255.00)\",\"rgb(181.56, 0.00, 255.00)\",\"rgb(181.05, 0.00, 255.00)\",\"rgb(180.79, 0.00, 255.00)\",\"rgb(180.54, 0.00, 255.00)\",\"rgb(180.28, 0.00, 255.00)\",\"rgb(179.77, 0.00, 255.00)\",\"rgb(179.52, 0.00, 255.00)\",\"rgb(179.26, 0.00, 255.00)\",\"rgb(178.75, 0.00, 255.00)\",\"rgb(178.50, 0.00, 255.00)\",\"rgb(178.24, 0.00, 255.00)\",\"rgb(177.73, 0.00, 255.00)\",\"rgb(177.48, 0.00, 255.00)\",\"rgb(177.22, 0.00, 255.00)\",\"rgb(176.71, 0.00, 255.00)\",\"rgb(176.46, 0.00, 255.00)\",\"rgb(176.20, 0.00, 255.00)\",\"rgb(175.69, 0.00, 255.00)\",\"rgb(175.44, 0.00, 255.00)\",\"rgb(175.19, 0.00, 255.00)\",\"rgb(174.68, 0.00, 255.00)\",\"rgb(174.42, 0.00, 255.00)\",\"rgb(174.17, 0.00, 255.00)\",\"rgb(173.66, 0.00, 255.00)\",\"rgb(173.40, 0.00, 255.00)\",\"rgb(173.15, 0.00, 255.00)\",\"rgb(172.89, 0.00, 255.00)\",\"rgb(172.38, 0.00, 255.00)\",\"rgb(172.12, 0.00, 255.00)\",\"rgb(171.87, 0.00, 255.00)\",\"rgb(171.36, 0.00, 255.00)\",\"rgb(171.11, 0.00, 255.00)\",\"rgb(170.85, 0.00, 255.00)\",\"rgb(170.34, 0.00, 255.00)\",\"rgb(170.09, 0.00, 255.00)\",\"rgb(169.83, 0.00, 255.00)\",\"rgb(169.32, 0.00, 255.00)\",\"rgb(169.06, 0.00, 255.00)\",\"rgb(168.81, 0.00, 255.00)\",\"rgb(168.30, 0.00, 255.00)\",\"rgb(168.05, 0.00, 255.00)\",\"rgb(167.79, 0.00, 255.00)\",\"rgb(167.28, 0.00, 255.00)\",\"rgb(167.03, 0.00, 255.00)\",\"rgb(166.77, 0.00, 255.00)\",\"rgb(166.52, 0.00, 255.00)\",\"rgb(166.00, 0.00, 255.00)\",\"rgb(165.75, 0.00, 255.00)\",\"rgb(165.50, 0.00, 255.00)\",\"rgb(164.99, 0.00, 255.00)\",\"rgb(164.73, 0.00, 255.00)\",\"rgb(164.47, 0.00, 255.00)\",\"rgb(163.97, 0.00, 255.00)\",\"rgb(163.71, 0.00, 255.00)\",\"rgb(163.46, 0.00, 255.00)\",\"rgb(162.94, 0.00, 255.00)\",\"rgb(162.69, 0.00, 255.00)\",\"rgb(162.44, 0.00, 255.00)\",\"rgb(161.93, 0.00, 255.00)\",\"rgb(161.67, 0.00, 255.00)\",\"rgb(161.41, 0.00, 255.00)\",\"rgb(160.91, 0.00, 255.00)\",\"rgb(160.65, 0.00, 255.00)\",\"rgb(160.40, 0.00, 255.00)\",\"rgb(159.88, 0.00, 255.00)\",\"rgb(159.63, 0.00, 255.00)\",\"rgb(159.38, 0.00, 255.00)\",\"rgb(159.12, 0.00, 255.00)\",\"rgb(158.61, 0.00, 255.00)\",\"rgb(158.35, 0.00, 255.00)\",\"rgb(158.10, 0.00, 255.00)\",\"rgb(157.59, 0.00, 255.00)\",\"rgb(157.34, 0.00, 255.00)\",\"rgb(157.08, 0.00, 255.00)\",\"rgb(156.57, 0.00, 255.00)\",\"rgb(156.31, 0.00, 255.00)\",\"rgb(156.06, 0.00, 255.00)\",\"rgb(155.55, 0.00, 255.00)\",\"rgb(155.29, 0.00, 255.00)\",\"rgb(155.04, 0.00, 255.00)\",\"rgb(154.53, 0.00, 255.00)\",\"rgb(154.28, 0.00, 255.00)\",\"rgb(154.02, 0.00, 255.00)\",\"rgb(153.51, 0.00, 255.00)\",\"rgb(153.25, 0.00, 255.00)\",\"rgb(153.00, 0.00, 255.00)\",\"rgb(152.75, 0.00, 255.00)\",\"rgb(152.23, 0.00, 255.00)\",\"rgb(151.98, 0.00, 255.00)\",\"rgb(151.72, 0.00, 255.00)\",\"rgb(151.22, 0.00, 255.00)\",\"rgb(150.96, 0.00, 255.00)\",\"rgb(150.70, 0.00, 255.00)\",\"rgb(150.19, 0.00, 255.00)\",\"rgb(149.94, 0.00, 255.00)\",\"rgb(149.69, 0.00, 255.00)\",\"rgb(149.17, 0.00, 255.00)\",\"rgb(148.92, 0.00, 255.00)\",\"rgb(148.66, 0.00, 255.00)\",\"rgb(148.16, 0.00, 255.00)\",\"rgb(147.90, 0.00, 255.00)\",\"rgb(147.64, 0.00, 255.00)\",\"rgb(147.13, 0.00, 255.00)\",\"rgb(146.88, 0.00, 255.00)\",\"rgb(146.62, 0.00, 255.00)\",\"rgb(146.11, 0.00, 255.00)\",\"rgb(145.86, 0.00, 255.00)\",\"rgb(145.60, 0.00, 255.00)\",\"rgb(145.35, 0.00, 255.00)\",\"rgb(144.84, 0.00, 255.00)\",\"rgb(144.58, 0.00, 255.00)\",\"rgb(144.33, 0.00, 255.00)\",\"rgb(143.82, 0.00, 255.00)\",\"rgb(143.56, 0.00, 255.00)\",\"rgb(143.31, 0.00, 255.00)\",\"rgb(142.80, 0.00, 255.00)\",\"rgb(142.55, 0.00, 255.00)\",\"rgb(142.29, 0.00, 255.00)\",\"rgb(141.78, 0.00, 255.00)\",\"rgb(141.53, 0.00, 255.00)\",\"rgb(141.27, 0.00, 255.00)\",\"rgb(140.76, 0.00, 255.00)\",\"rgb(140.51, 0.00, 255.00)\",\"rgb(140.25, 0.00, 255.00)\",\"rgb(139.74, 0.00, 255.00)\",\"rgb(139.49, 0.00, 255.00)\",\"rgb(139.23, 0.00, 255.00)\",\"rgb(138.98, 0.00, 255.00)\",\"rgb(138.47, 0.00, 255.00)\",\"rgb(138.21, 0.00, 255.00)\",\"rgb(137.96, 0.00, 255.00)\",\"rgb(137.45, 0.00, 255.00)\",\"rgb(137.19, 0.00, 255.00)\",\"rgb(136.94, 0.00, 255.00)\",\"rgb(136.43, 0.00, 255.00)\",\"rgb(136.17, 0.00, 255.00)\",\"rgb(135.92, 0.00, 255.00)\",\"rgb(135.41, 0.00, 255.00)\",\"rgb(135.15, 0.00, 255.00)\",\"rgb(134.90, 0.00, 255.00)\",\"rgb(134.39, 0.00, 255.00)\",\"rgb(134.13, 0.00, 255.00)\",\"rgb(133.88, 0.00, 255.00)\",\"rgb(133.37, 0.00, 255.00)\",\"rgb(133.11, 0.00, 255.00)\",\"rgb(132.86, 0.00, 255.00)\",\"rgb(132.60, 0.00, 255.00)\",\"rgb(132.09, 0.00, 255.00)\",\"rgb(131.84, 0.00, 255.00)\",\"rgb(131.58, 0.00, 255.00)\",\"rgb(131.07, 0.00, 255.00)\",\"rgb(130.81, 0.00, 255.00)\",\"rgb(130.56, 0.00, 255.00)\",\"rgb(130.05, 0.00, 255.00)\",\"rgb(129.80, 0.00, 255.00)\",\"rgb(129.54, 0.00, 255.00)\",\"rgb(129.03, 0.00, 255.00)\",\"rgb(128.78, 0.00, 255.00)\",\"rgb(128.52, 0.00, 255.00)\",\"rgb(128.01, 0.00, 255.00)\",\"rgb(127.75, 0.00, 255.00)\",\"rgb(127.50, 0.00, 255.00)\",\"rgb(126.99, 0.00, 255.00)\",\"rgb(126.73, 0.00, 255.00)\",\"rgb(126.48, 0.00, 255.00)\",\"rgb(125.97, 0.00, 255.00)\",\"rgb(125.72, 0.00, 255.00)\",\"rgb(125.46, 0.00, 255.00)\",\"rgb(125.20, 0.00, 255.00)\",\"rgb(124.69, 0.00, 255.00)\",\"rgb(124.44, 0.00, 255.00)\",\"rgb(124.19, 0.00, 255.00)\",\"rgb(123.67, 0.00, 255.00)\",\"rgb(123.42, 0.00, 255.00)\",\"rgb(123.16, 0.00, 255.00)\",\"rgb(122.66, 0.00, 255.00)\",\"rgb(122.40, 0.00, 255.00)\",\"rgb(122.14, 0.00, 255.00)\",\"rgb(121.63, 0.00, 255.00)\",\"rgb(121.38, 0.00, 255.00)\",\"rgb(121.12, 0.00, 255.00)\",\"rgb(120.61, 0.00, 255.00)\",\"rgb(120.36, 0.00, 255.00)\",\"rgb(120.10, 0.00, 255.00)\",\"rgb(119.59, 0.00, 255.00)\",\"rgb(119.34, 0.00, 255.00)\",\"rgb(119.09, 0.00, 255.00)\",\"rgb(118.83, 0.00, 255.00)\",\"rgb(118.32, 0.00, 255.00)\",\"rgb(118.07, 0.00, 255.00)\",\"rgb(117.81, 0.00, 255.00)\",\"rgb(117.30, 0.00, 255.00)\",\"rgb(117.05, 0.00, 255.00)\",\"rgb(116.79, 0.00, 255.00)\",\"rgb(116.28, 0.00, 255.00)\",\"rgb(116.03, 0.00, 255.00)\",\"rgb(115.77, 0.00, 255.00)\",\"rgb(115.26, 0.00, 255.00)\",\"rgb(115.01, 0.00, 255.00)\",\"rgb(114.75, 0.00, 255.00)\",\"rgb(114.24, 0.00, 255.00)\",\"rgb(113.98, 0.00, 255.00)\",\"rgb(113.73, 0.00, 255.00)\",\"rgb(113.22, 0.00, 255.00)\",\"rgb(112.97, 0.00, 255.00)\",\"rgb(112.71, 0.00, 255.00)\",\"rgb(112.20, 0.00, 255.00)\",\"rgb(111.95, 0.00, 255.00)\",\"rgb(111.69, 0.00, 255.00)\",\"rgb(111.44, 0.00, 255.00)\",\"rgb(110.92, 0.00, 255.00)\",\"rgb(110.67, 0.00, 255.00)\",\"rgb(110.41, 0.00, 255.00)\",\"rgb(109.91, 0.00, 255.00)\",\"rgb(109.65, 0.00, 255.00)\",\"rgb(109.39, 0.00, 255.00)\",\"rgb(108.88, 0.00, 255.00)\",\"rgb(108.63, 0.00, 255.00)\",\"rgb(108.38, 0.00, 255.00)\",\"rgb(107.86, 0.00, 255.00)\",\"rgb(107.61, 0.00, 255.00)\",\"rgb(107.35, 0.00, 255.00)\",\"rgb(106.84, 0.00, 255.00)\",\"rgb(106.59, 0.00, 255.00)\",\"rgb(106.33, 0.00, 255.00)\",\"rgb(105.82, 0.00, 255.00)\",\"rgb(105.57, 0.00, 255.00)\",\"rgb(105.31, 0.00, 255.00)\",\"rgb(105.06, 0.00, 255.00)\",\"rgb(104.55, 0.00, 255.00)\",\"rgb(104.29, 0.00, 255.00)\",\"rgb(104.04, 0.00, 255.00)\",\"rgb(103.53, 0.00, 255.00)\",\"rgb(103.28, 0.00, 255.00)\",\"rgb(103.02, 0.00, 255.00)\",\"rgb(102.51, 0.00, 255.00)\",\"rgb(102.26, 0.00, 255.00)\",\"rgb(102.00, 0.00, 255.00)\",\"rgb(101.49, 0.00, 255.00)\",\"rgb(101.23, 0.00, 255.00)\",\"rgb(100.98, 0.00, 255.00)\",\"rgb(100.47, 0.00, 255.00)\",\"rgb(100.22, 0.00, 255.00)\",\"rgb(99.96, 0.00, 255.00)\",\"rgb(99.45, 0.00, 255.00)\",\"rgb(99.20, 0.00, 255.00)\",\"rgb(98.94, 0.00, 255.00)\",\"rgb(98.69, 0.00, 255.00)\",\"rgb(98.17, 0.00, 255.00)\",\"rgb(97.92, 0.00, 255.00)\",\"rgb(97.67, 0.00, 255.00)\",\"rgb(97.16, 0.00, 255.00)\",\"rgb(96.90, 0.00, 255.00)\",\"rgb(96.64, 0.00, 255.00)\",\"rgb(96.14, 0.00, 255.00)\",\"rgb(95.88, 0.00, 255.00)\",\"rgb(95.62, 0.00, 255.00)\",\"rgb(95.11, 0.00, 255.00)\",\"rgb(94.86, 0.00, 255.00)\",\"rgb(94.61, 0.00, 255.00)\",\"rgb(94.09, 0.00, 255.00)\",\"rgb(93.84, 0.00, 255.00)\",\"rgb(93.58, 0.00, 255.00)\",\"rgb(93.08, 0.00, 255.00)\",\"rgb(92.82, 0.00, 255.00)\",\"rgb(92.56, 0.00, 255.00)\",\"rgb(92.05, 0.00, 255.00)\",\"rgb(91.80, 0.00, 255.00)\",\"rgb(91.55, 0.00, 255.00)\",\"rgb(91.29, 0.00, 255.00)\",\"rgb(90.78, 0.00, 255.00)\",\"rgb(90.52, 0.00, 255.00)\",\"rgb(90.27, 0.00, 255.00)\",\"rgb(89.76, 0.00, 255.00)\",\"rgb(89.50, 0.00, 255.00)\",\"rgb(89.25, 0.00, 255.00)\",\"rgb(88.74, 0.00, 255.00)\",\"rgb(88.48, 0.00, 255.00)\",\"rgb(88.23, 0.00, 255.00)\",\"rgb(87.72, 0.00, 255.00)\",\"rgb(87.47, 0.00, 255.00)\",\"rgb(87.21, 0.00, 255.00)\",\"rgb(86.70, 0.00, 255.00)\",\"rgb(86.45, 0.00, 255.00)\",\"rgb(86.19, 0.00, 255.00)\",\"rgb(85.68, 0.00, 255.00)\",\"rgb(85.43, 0.00, 255.00)\",\"rgb(85.17, 0.00, 255.00)\",\"rgb(84.92, 0.00, 255.00)\",\"rgb(84.41, 0.00, 255.00)\",\"rgb(84.15, 0.00, 255.00)\",\"rgb(83.90, 0.00, 255.00)\",\"rgb(83.39, 0.00, 255.00)\",\"rgb(83.13, 0.00, 255.00)\",\"rgb(82.88, 0.00, 255.00)\",\"rgb(82.37, 0.00, 255.00)\",\"rgb(82.11, 0.00, 255.00)\",\"rgb(81.86, 0.00, 255.00)\",\"rgb(81.34, 0.00, 255.00)\",\"rgb(81.09, 0.00, 255.00)\",\"rgb(80.84, 0.00, 255.00)\",\"rgb(80.33, 0.00, 255.00)\",\"rgb(80.07, 0.00, 255.00)\",\"rgb(79.81, 0.00, 255.00)\",\"rgb(79.30, 0.00, 255.00)\",\"rgb(79.05, 0.00, 255.00)\",\"rgb(78.80, 0.00, 255.00)\",\"rgb(78.28, 0.00, 255.00)\",\"rgb(78.03, 0.00, 255.00)\",\"rgb(77.77, 0.00, 255.00)\",\"rgb(77.52, 0.00, 255.00)\",\"rgb(77.01, 0.00, 255.00)\",\"rgb(76.75, 0.00, 255.00)\",\"rgb(76.50, 0.00, 255.00)\",\"rgb(75.99, 0.00, 255.00)\",\"rgb(75.73, 0.00, 255.00)\",\"rgb(75.48, 0.00, 255.00)\",\"rgb(74.97, 0.00, 255.00)\",\"rgb(74.71, 0.00, 255.00)\",\"rgb(74.46, 0.00, 255.00)\",\"rgb(73.95, 0.00, 255.00)\",\"rgb(73.69, 0.00, 255.00)\",\"rgb(73.44, 0.00, 255.00)\",\"rgb(72.93, 0.00, 255.00)\",\"rgb(72.67, 0.00, 255.00)\",\"rgb(72.42, 0.00, 255.00)\",\"rgb(71.91, 0.00, 255.00)\",\"rgb(71.66, 0.00, 255.00)\",\"rgb(71.40, 0.00, 255.00)\",\"rgb(71.15, 0.00, 255.00)\",\"rgb(70.64, 0.00, 255.00)\",\"rgb(70.38, 0.00, 255.00)\",\"rgb(70.12, 0.00, 255.00)\",\"rgb(69.62, 0.00, 255.00)\",\"rgb(69.36, 0.00, 255.00)\",\"rgb(69.11, 0.00, 255.00)\",\"rgb(68.59, 0.00, 255.00)\",\"rgb(68.34, 0.00, 255.00)\",\"rgb(68.09, 0.00, 255.00)\",\"rgb(67.58, 0.00, 255.00)\",\"rgb(67.32, 0.00, 255.00)\",\"rgb(67.06, 0.00, 255.00)\",\"rgb(66.56, 0.00, 255.00)\",\"rgb(66.30, 0.00, 255.00)\",\"rgb(66.05, 0.00, 255.00)\",\"rgb(65.53, 0.00, 255.00)\",\"rgb(65.28, 0.00, 255.00)\",\"rgb(65.03, 0.00, 255.00)\",\"rgb(64.52, 0.00, 255.00)\",\"rgb(64.26, 0.00, 255.00)\",\"rgb(64.00, 0.00, 255.00)\",\"rgb(63.75, 0.00, 255.00)\",\"rgb(63.24, 0.00, 255.00)\",\"rgb(62.98, 0.00, 255.00)\",\"rgb(62.73, 0.00, 255.00)\",\"rgb(62.22, 0.00, 255.00)\",\"rgb(61.96, 0.00, 255.00)\",\"rgb(61.71, 0.00, 255.00)\",\"rgb(61.20, 0.00, 255.00)\",\"rgb(60.95, 0.00, 255.00)\",\"rgb(60.69, 0.00, 255.00)\",\"rgb(60.18, 0.00, 255.00)\",\"rgb(59.92, 0.00, 255.00)\",\"rgb(59.67, 0.00, 255.00)\",\"rgb(59.16, 0.00, 255.00)\",\"rgb(58.91, 0.00, 255.00)\",\"rgb(58.65, 0.00, 255.00)\",\"rgb(58.14, 0.00, 255.00)\",\"rgb(57.89, 0.00, 255.00)\",\"rgb(57.63, 0.00, 255.00)\",\"rgb(57.38, 0.00, 255.00)\",\"rgb(56.87, 0.00, 255.00)\",\"rgb(56.61, 0.00, 255.00)\",\"rgb(56.36, 0.00, 255.00)\",\"rgb(55.84, 0.00, 255.00)\",\"rgb(55.59, 0.00, 255.00)\",\"rgb(55.34, 0.00, 255.00)\",\"rgb(54.82, 0.00, 255.00)\",\"rgb(54.57, 0.00, 255.00)\",\"rgb(54.31, 0.00, 255.00)\",\"rgb(53.80, 0.00, 255.00)\",\"rgb(53.55, 0.00, 255.00)\",\"rgb(53.29, 0.00, 255.00)\",\"rgb(52.78, 0.00, 255.00)\",\"rgb(52.53, 0.00, 255.00)\",\"rgb(52.27, 0.00, 255.00)\",\"rgb(51.77, 0.00, 255.00)\",\"rgb(51.51, 0.00, 255.00)\",\"rgb(51.26, 0.00, 255.00)\",\"rgb(51.00, 0.00, 255.00)\",\"rgb(50.49, 0.00, 255.00)\",\"rgb(50.23, 0.00, 255.00)\",\"rgb(49.98, 0.00, 255.00)\",\"rgb(49.47, 0.00, 255.00)\",\"rgb(49.22, 0.00, 255.00)\",\"rgb(48.96, 0.00, 255.00)\",\"rgb(48.45, 0.00, 255.00)\",\"rgb(48.20, 0.00, 255.00)\",\"rgb(47.94, 0.00, 255.00)\",\"rgb(47.43, 0.00, 255.00)\",\"rgb(47.17, 0.00, 255.00)\",\"rgb(46.92, 0.00, 255.00)\",\"rgb(46.41, 0.00, 255.00)\",\"rgb(46.16, 0.00, 255.00)\",\"rgb(45.90, 0.00, 255.00)\",\"rgb(45.39, 0.00, 255.00)\",\"rgb(45.13, 0.00, 255.00)\",\"rgb(44.88, 0.00, 255.00)\",\"rgb(44.37, 0.00, 255.00)\",\"rgb(44.11, 0.00, 255.00)\",\"rgb(43.86, 0.00, 255.00)\",\"rgb(43.61, 0.00, 255.00)\",\"rgb(43.10, 0.00, 255.00)\",\"rgb(42.84, 0.00, 255.00)\",\"rgb(42.59, 0.00, 255.00)\",\"rgb(42.08, 0.00, 255.00)\",\"rgb(41.82, 0.00, 255.00)\",\"rgb(41.57, 0.00, 255.00)\",\"rgb(41.05, 0.00, 255.00)\",\"rgb(40.80, 0.00, 255.00)\",\"rgb(40.55, 0.00, 255.00)\",\"rgb(40.04, 0.00, 255.00)\",\"rgb(39.78, 0.00, 255.00)\",\"rgb(39.52, 0.00, 255.00)\",\"rgb(39.02, 0.00, 255.00)\",\"rgb(38.76, 0.00, 255.00)\",\"rgb(38.50, 0.00, 255.00)\",\"rgb(37.99, 0.00, 255.00)\",\"rgb(37.74, 0.00, 255.00)\",\"rgb(37.48, 0.00, 255.00)\",\"rgb(37.23, 0.00, 255.00)\",\"rgb(36.72, 0.00, 255.00)\",\"rgb(36.46, 0.00, 255.00)\",\"rgb(36.21, 0.00, 255.00)\",\"rgb(35.70, 0.00, 255.00)\",\"rgb(35.45, 0.00, 255.00)\",\"rgb(35.19, 0.00, 255.00)\",\"rgb(34.68, 0.00, 255.00)\",\"rgb(34.43, 0.00, 255.00)\",\"rgb(34.17, 0.00, 255.00)\",\"rgb(33.66, 0.00, 255.00)\",\"rgb(33.41, 0.00, 255.00)\",\"rgb(33.15, 0.00, 255.00)\",\"rgb(32.64, 0.00, 255.00)\",\"rgb(32.38, 0.00, 255.00)\",\"rgb(32.13, 0.00, 255.00)\",\"rgb(31.62, 0.00, 255.00)\",\"rgb(31.36, 0.00, 255.00)\",\"rgb(31.11, 0.00, 255.00)\",\"rgb(30.60, 0.00, 255.00)\",\"rgb(30.34, 0.00, 255.00)\",\"rgb(30.09, 0.00, 255.00)\",\"rgb(29.84, 0.00, 255.00)\",\"rgb(29.33, 0.00, 255.00)\",\"rgb(29.07, 0.00, 255.00)\",\"rgb(28.82, 0.00, 255.00)\",\"rgb(28.30, 0.00, 255.00)\",\"rgb(28.05, 0.00, 255.00)\",\"rgb(27.79, 0.00, 255.00)\",\"rgb(27.29, 0.00, 255.00)\",\"rgb(27.03, 0.00, 255.00)\",\"rgb(26.77, 0.00, 255.00)\",\"rgb(26.26, 0.00, 255.00)\",\"rgb(26.01, 0.00, 255.00)\",\"rgb(25.76, 0.00, 255.00)\",\"rgb(25.25, 0.00, 255.00)\",\"rgb(24.99, 0.00, 255.00)\",\"rgb(24.73, 0.00, 255.00)\",\"rgb(24.23, 0.00, 255.00)\",\"rgb(23.97, 0.00, 255.00)\",\"rgb(23.71, 0.00, 255.00)\",\"rgb(23.46, 0.00, 255.00)\",\"rgb(22.95, 0.00, 255.00)\",\"rgb(22.70, 0.00, 255.00)\",\"rgb(22.44, 0.00, 255.00)\",\"rgb(21.93, 0.00, 255.00)\",\"rgb(21.68, 0.00, 255.00)\",\"rgb(21.42, 0.00, 255.00)\",\"rgb(20.91, 0.00, 255.00)\",\"rgb(20.66, 0.00, 255.00)\",\"rgb(20.40, 0.00, 255.00)\",\"rgb(19.89, 0.00, 255.00)\",\"rgb(19.63, 0.00, 255.00)\",\"rgb(19.38, 0.00, 255.00)\",\"rgb(18.87, 0.00, 255.00)\",\"rgb(18.61, 0.00, 255.00)\",\"rgb(18.36, 0.00, 255.00)\",\"rgb(17.85, 0.00, 255.00)\",\"rgb(17.60, 0.00, 255.00)\",\"rgb(17.34, 0.00, 255.00)\",\"rgb(17.09, 0.00, 255.00)\",\"rgb(16.57, 0.00, 255.00)\",\"rgb(16.32, 0.00, 255.00)\",\"rgb(16.07, 0.00, 255.00)\",\"rgb(15.55, 0.00, 255.00)\",\"rgb(15.30, 0.00, 255.00)\",\"rgb(15.04, 0.00, 255.00)\",\"rgb(14.54, 0.00, 255.00)\",\"rgb(14.28, 0.00, 255.00)\",\"rgb(14.03, 0.00, 255.00)\",\"rgb(13.51, 0.00, 255.00)\",\"rgb(13.26, 0.00, 255.00)\",\"rgb(13.00, 0.00, 255.00)\",\"rgb(12.50, 0.00, 255.00)\",\"rgb(12.24, 0.00, 255.00)\",\"rgb(11.98, 0.00, 255.00)\",\"rgb(11.47, 0.00, 255.00)\",\"rgb(11.22, 0.00, 255.00)\",\"rgb(10.96, 0.00, 255.00)\",\"rgb(10.46, 0.00, 255.00)\",\"rgb(10.20, 0.00, 255.00)\",\"rgb(9.95, 0.00, 255.00)\",\"rgb(9.69, 0.00, 255.00)\",\"rgb(9.18, 0.00, 255.00)\",\"rgb(8.93, 0.00, 255.00)\",\"rgb(8.67, 0.00, 255.00)\",\"rgb(8.16, 0.00, 255.00)\",\"rgb(7.91, 0.00, 255.00)\",\"rgb(7.65, 0.00, 255.00)\",\"rgb(7.14, 0.00, 255.00)\",\"rgb(6.88, 0.00, 255.00)\",\"rgb(6.63, 0.00, 255.00)\",\"rgb(6.12, 0.00, 255.00)\",\"rgb(5.87, 0.00, 255.00)\",\"rgb(5.61, 0.00, 255.00)\",\"rgb(5.10, 0.00, 255.00)\",\"rgb(4.84, 0.00, 255.00)\",\"rgb(4.59, 0.00, 255.00)\",\"rgb(4.08, 0.00, 255.00)\",\"rgb(3.82, 0.00, 255.00)\",\"rgb(3.57, 0.00, 255.00)\",\"rgb(3.31, 0.00, 255.00)\",\"rgb(2.80, 0.00, 255.00)\",\"rgb(2.55, 0.00, 255.00)\",\"rgb(2.29, 0.00, 255.00)\",\"rgb(1.79, 0.00, 255.00)\",\"rgb(1.53, 0.00, 255.00)\",\"rgb(1.28, 0.00, 255.00)\",\"rgb(0.77, 0.00, 255.00)\",\"rgb(0.51, 0.00, 255.00)\",\"rgb(0.26, 0.00, 255.00)\",\"rgb(0.00, 0.26, 255.00)\",\"rgb(0.00, 0.51, 255.00)\",\"rgb(0.00, 1.02, 255.00)\",\"rgb(0.00, 1.53, 255.00)\",\"rgb(0.00, 1.79, 255.00)\",\"rgb(0.00, 2.29, 255.00)\",\"rgb(0.00, 2.80, 255.00)\",\"rgb(0.00, 3.06, 255.00)\",\"rgb(0.00, 3.57, 255.00)\",\"rgb(0.00, 4.08, 255.00)\",\"rgb(0.00, 4.33, 255.00)\",\"rgb(0.00, 4.84, 255.00)\",\"rgb(0.00, 5.36, 255.00)\",\"rgb(0.00, 5.61, 255.00)\",\"rgb(0.00, 6.12, 255.00)\",\"rgb(0.00, 6.63, 255.00)\",\"rgb(0.00, 6.88, 255.00)\",\"rgb(0.00, 7.40, 255.00)\",\"rgb(0.00, 7.65, 255.00)\",\"rgb(0.00, 8.16, 255.00)\",\"rgb(0.00, 8.67, 255.00)\",\"rgb(0.00, 8.93, 255.00)\",\"rgb(0.00, 9.43, 255.00)\",\"rgb(0.00, 9.95, 255.00)\",\"rgb(0.00, 10.20, 255.00)\",\"rgb(0.00, 10.71, 255.00)\",\"rgb(0.00, 11.22, 255.00)\",\"rgb(0.00, 11.47, 255.00)\",\"rgb(0.00, 11.98, 255.00)\",\"rgb(0.00, 12.50, 255.00)\",\"rgb(0.00, 12.75, 255.00)\",\"rgb(0.00, 13.26, 255.00)\",\"rgb(0.00, 13.51, 255.00)\",\"rgb(0.00, 14.03, 255.00)\",\"rgb(0.00, 14.54, 255.00)\",\"rgb(0.00, 14.79, 255.00)\",\"rgb(0.00, 15.30, 255.00)\",\"rgb(0.00, 15.81, 255.00)\",\"rgb(0.00, 16.07, 255.00)\",\"rgb(0.00, 16.57, 255.00)\",\"rgb(0.00, 17.09, 255.00)\",\"rgb(0.00, 17.34, 255.00)\",\"rgb(0.00, 17.85, 255.00)\",\"rgb(0.00, 18.36, 255.00)\",\"rgb(0.00, 18.61, 255.00)\",\"rgb(0.00, 19.12, 255.00)\",\"rgb(0.00, 19.63, 255.00)\",\"rgb(0.00, 19.89, 255.00)\",\"rgb(0.00, 20.40, 255.00)\",\"rgb(0.00, 20.66, 255.00)\",\"rgb(0.00, 21.17, 255.00)\",\"rgb(0.00, 21.68, 255.00)\",\"rgb(0.00, 21.93, 255.00)\",\"rgb(0.00, 22.44, 255.00)\",\"rgb(0.00, 22.95, 255.00)\",\"rgb(0.00, 23.20, 255.00)\",\"rgb(0.00, 23.71, 255.00)\",\"rgb(0.00, 24.23, 255.00)\",\"rgb(0.00, 24.48, 255.00)\",\"rgb(0.00, 24.99, 255.00)\",\"rgb(0.00, 25.50, 255.00)\",\"rgb(0.00, 25.76, 255.00)\",\"rgb(0.00, 26.26, 255.00)\",\"rgb(0.00, 26.77, 255.00)\",\"rgb(0.00, 27.03, 255.00)\",\"rgb(0.00, 27.54, 255.00)\",\"rgb(0.00, 27.79, 255.00)\",\"rgb(0.00, 28.30, 255.00)\",\"rgb(0.00, 28.82, 255.00)\",\"rgb(0.00, 29.07, 255.00)\",\"rgb(0.00, 29.58, 255.00)\",\"rgb(0.00, 30.09, 255.00)\",\"rgb(0.00, 30.34, 255.00)\",\"rgb(0.00, 30.86, 255.00)\",\"rgb(0.00, 31.36, 255.00)\",\"rgb(0.00, 31.62, 255.00)\",\"rgb(0.00, 32.13, 255.00)\",\"rgb(0.00, 32.64, 255.00)\",\"rgb(0.00, 32.90, 255.00)\",\"rgb(0.00, 33.41, 255.00)\",\"rgb(0.00, 33.91, 255.00)\",\"rgb(0.00, 34.17, 255.00)\",\"rgb(0.00, 34.68, 255.00)\",\"rgb(0.00, 34.94, 255.00)\",\"rgb(0.00, 35.45, 255.00)\",\"rgb(0.00, 35.95, 255.00)\",\"rgb(0.00, 36.21, 255.00)\",\"rgb(0.00, 36.72, 255.00)\",\"rgb(0.00, 37.23, 255.00)\",\"rgb(0.00, 37.48, 255.00)\",\"rgb(0.00, 37.99, 255.00)\",\"rgb(0.00, 38.50, 255.00)\",\"rgb(0.00, 38.76, 255.00)\",\"rgb(0.00, 39.27, 255.00)\",\"rgb(0.00, 39.78, 255.00)\",\"rgb(0.00, 40.04, 255.00)\",\"rgb(0.00, 40.55, 255.00)\",\"rgb(0.00, 40.80, 255.00)\",\"rgb(0.00, 41.31, 255.00)\",\"rgb(0.00, 41.82, 255.00)\",\"rgb(0.00, 42.08, 255.00)\",\"rgb(0.00, 42.59, 255.00)\",\"rgb(0.00, 43.10, 255.00)\",\"rgb(0.00, 43.35, 255.00)\",\"rgb(0.00, 43.86, 255.00)\",\"rgb(0.00, 44.37, 255.00)\",\"rgb(0.00, 44.62, 255.00)\",\"rgb(0.00, 45.13, 255.00)\",\"rgb(0.00, 45.64, 255.00)\",\"rgb(0.00, 45.90, 255.00)\",\"rgb(0.00, 46.41, 255.00)\",\"rgb(0.00, 46.92, 255.00)\",\"rgb(0.00, 47.17, 255.00)\",\"rgb(0.00, 47.69, 255.00)\",\"rgb(0.00, 47.94, 255.00)\",\"rgb(0.00, 48.45, 255.00)\",\"rgb(0.00, 48.96, 255.00)\",\"rgb(0.00, 49.22, 255.00)\",\"rgb(0.00, 49.73, 255.00)\",\"rgb(0.00, 50.23, 255.00)\",\"rgb(0.00, 50.49, 255.00)\",\"rgb(0.00, 51.00, 255.00)\",\"rgb(0.00, 51.51, 255.00)\",\"rgb(0.00, 51.77, 255.00)\",\"rgb(0.00, 52.27, 255.00)\",\"rgb(0.00, 52.78, 255.00)\",\"rgb(0.00, 53.04, 255.00)\",\"rgb(0.00, 53.55, 255.00)\",\"rgb(0.00, 54.06, 255.00)\",\"rgb(0.00, 54.31, 255.00)\",\"rgb(0.00, 54.82, 255.00)\",\"rgb(0.00, 55.08, 255.00)\",\"rgb(0.00, 55.59, 255.00)\",\"rgb(0.00, 56.10, 255.00)\",\"rgb(0.00, 56.36, 255.00)\",\"rgb(0.00, 56.87, 255.00)\",\"rgb(0.00, 57.38, 255.00)\",\"rgb(0.00, 57.63, 255.00)\",\"rgb(0.00, 58.14, 255.00)\",\"rgb(0.00, 58.65, 255.00)\",\"rgb(0.00, 58.91, 255.00)\",\"rgb(0.00, 59.42, 255.00)\",\"rgb(0.00, 59.92, 255.00)\",\"rgb(0.00, 60.18, 255.00)\",\"rgb(0.00, 60.69, 255.00)\",\"rgb(0.00, 61.20, 255.00)\",\"rgb(0.00, 61.45, 255.00)\",\"rgb(0.00, 61.96, 255.00)\",\"rgb(0.00, 62.22, 255.00)\",\"rgb(0.00, 62.73, 255.00)\",\"rgb(0.00, 63.24, 255.00)\",\"rgb(0.00, 63.49, 255.00)\",\"rgb(0.00, 64.00, 255.00)\",\"rgb(0.00, 64.52, 255.00)\",\"rgb(0.00, 64.77, 255.00)\",\"rgb(0.00, 65.28, 255.00)\",\"rgb(0.00, 65.79, 255.00)\",\"rgb(0.00, 66.05, 255.00)\",\"rgb(0.00, 66.56, 255.00)\",\"rgb(0.00, 67.06, 255.00)\",\"rgb(0.00, 67.32, 255.00)\",\"rgb(0.00, 67.83, 255.00)\",\"rgb(0.00, 68.09, 255.00)\",\"rgb(0.00, 68.59, 255.00)\",\"rgb(0.00, 69.11, 255.00)\",\"rgb(0.00, 69.36, 255.00)\",\"rgb(0.00, 69.87, 255.00)\",\"rgb(0.00, 70.38, 255.00)\",\"rgb(0.00, 70.64, 255.00)\",\"rgb(0.00, 71.15, 255.00)\",\"rgb(0.00, 71.66, 255.00)\",\"rgb(0.00, 71.91, 255.00)\",\"rgb(0.00, 72.42, 255.00)\",\"rgb(0.00, 72.93, 255.00)\",\"rgb(0.00, 73.18, 255.00)\",\"rgb(0.00, 73.69, 255.00)\",\"rgb(0.00, 74.20, 255.00)\",\"rgb(0.00, 74.46, 255.00)\",\"rgb(0.00, 74.97, 255.00)\",\"rgb(0.00, 75.22, 255.00)\",\"rgb(0.00, 75.73, 255.00)\",\"rgb(0.00, 76.24, 255.00)\",\"rgb(0.00, 76.50, 255.00)\",\"rgb(0.00, 77.01, 255.00)\",\"rgb(0.00, 77.52, 255.00)\",\"rgb(0.00, 77.77, 255.00)\",\"rgb(0.00, 78.28, 255.00)\",\"rgb(0.00, 78.80, 255.00)\",\"rgb(0.00, 79.05, 255.00)\",\"rgb(0.00, 79.56, 255.00)\",\"rgb(0.00, 80.07, 255.00)\",\"rgb(0.00, 80.33, 255.00)\",\"rgb(0.00, 80.84, 255.00)\",\"rgb(0.00, 81.34, 255.00)\",\"rgb(0.00, 81.60, 255.00)\",\"rgb(0.00, 82.11, 255.00)\",\"rgb(0.00, 82.37, 255.00)\",\"rgb(0.00, 82.88, 255.00)\",\"rgb(0.00, 83.39, 255.00)\",\"rgb(0.00, 83.64, 255.00)\",\"rgb(0.00, 84.15, 255.00)\",\"rgb(0.00, 84.66, 255.00)\",\"rgb(0.00, 84.92, 255.00)\",\"rgb(0.00, 85.43, 255.00)\",\"rgb(0.00, 85.94, 255.00)\",\"rgb(0.00, 86.19, 255.00)\",\"rgb(0.00, 86.70, 255.00)\",\"rgb(0.00, 87.21, 255.00)\",\"rgb(0.00, 87.47, 255.00)\",\"rgb(0.00, 87.97, 255.00)\",\"rgb(0.00, 88.48, 255.00)\",\"rgb(0.00, 88.74, 255.00)\",\"rgb(0.00, 89.25, 255.00)\",\"rgb(0.00, 89.50, 255.00)\",\"rgb(0.00, 90.02, 255.00)\",\"rgb(0.00, 90.52, 255.00)\",\"rgb(0.00, 90.78, 255.00)\",\"rgb(0.00, 91.29, 255.00)\",\"rgb(0.00, 91.80, 255.00)\",\"rgb(0.00, 92.05, 255.00)\",\"rgb(0.00, 92.56, 255.00)\",\"rgb(0.00, 93.08, 255.00)\",\"rgb(0.00, 93.33, 255.00)\",\"rgb(0.00, 93.84, 255.00)\",\"rgb(0.00, 94.35, 255.00)\",\"rgb(0.00, 94.61, 255.00)\",\"rgb(0.00, 95.11, 255.00)\",\"rgb(0.00, 95.37, 255.00)\",\"rgb(0.00, 95.88, 255.00)\",\"rgb(0.00, 96.39, 255.00)\",\"rgb(0.00, 96.64, 255.00)\",\"rgb(0.00, 97.16, 255.00)\",\"rgb(0.00, 97.67, 255.00)\",\"rgb(0.00, 97.92, 255.00)\",\"rgb(0.00, 98.43, 255.00)\",\"rgb(0.00, 98.94, 255.00)\",\"rgb(0.00, 99.20, 255.00)\",\"rgb(0.00, 99.70, 255.00)\",\"rgb(0.00, 100.22, 255.00)\",\"rgb(0.00, 100.47, 255.00)\",\"rgb(0.00, 100.98, 255.00)\",\"rgb(0.00, 101.49, 255.00)\",\"rgb(0.00, 101.75, 255.00)\",\"rgb(0.00, 102.26, 255.00)\",\"rgb(0.00, 102.51, 255.00)\",\"rgb(0.00, 103.02, 255.00)\",\"rgb(0.00, 103.53, 255.00)\",\"rgb(0.00, 103.78, 255.00)\",\"rgb(0.00, 104.29, 255.00)\",\"rgb(0.00, 104.80, 255.00)\",\"rgb(0.00, 105.06, 255.00)\",\"rgb(0.00, 105.57, 255.00)\",\"rgb(0.00, 106.08, 255.00)\",\"rgb(0.00, 106.33, 255.00)\",\"rgb(0.00, 106.84, 255.00)\",\"rgb(0.00, 107.35, 255.00)\",\"rgb(0.00, 107.61, 255.00)\",\"rgb(0.00, 108.12, 255.00)\",\"rgb(0.00, 108.63, 255.00)\",\"rgb(0.00, 108.88, 255.00)\",\"rgb(0.00, 109.39, 255.00)\",\"rgb(0.00, 109.65, 255.00)\",\"rgb(0.00, 110.16, 255.00)\",\"rgb(0.00, 110.67, 255.00)\",\"rgb(0.00, 110.92, 255.00)\",\"rgb(0.00, 111.44, 255.00)\",\"rgb(0.00, 111.95, 255.00)\",\"rgb(0.00, 112.20, 255.00)\",\"rgb(0.00, 112.71, 255.00)\",\"rgb(0.00, 113.22, 255.00)\",\"rgb(0.00, 113.48, 255.00)\",\"rgb(0.00, 113.98, 255.00)\",\"rgb(0.00, 114.50, 255.00)\",\"rgb(0.00, 114.75, 255.00)\",\"rgb(0.00, 115.26, 255.00)\",\"rgb(0.00, 115.52, 255.00)\",\"rgb(0.00, 116.03, 255.00)\",\"rgb(0.00, 116.54, 255.00)\",\"rgb(0.00, 116.79, 255.00)\",\"rgb(0.00, 117.30, 255.00)\",\"rgb(0.00, 117.81, 255.00)\",\"rgb(0.00, 118.07, 255.00)\",\"rgb(0.00, 118.58, 255.00)\",\"rgb(0.00, 119.09, 255.00)\",\"rgb(0.00, 119.34, 255.00)\",\"rgb(0.00, 119.85, 255.00)\",\"rgb(0.00, 120.36, 255.00)\",\"rgb(0.00, 120.61, 255.00)\",\"rgb(0.00, 121.12, 255.00)\",\"rgb(0.00, 121.63, 255.00)\",\"rgb(0.00, 121.89, 255.00)\",\"rgb(0.00, 122.40, 255.00)\",\"rgb(0.00, 122.66, 255.00)\",\"rgb(0.00, 123.16, 255.00)\",\"rgb(0.00, 123.67, 255.00)\",\"rgb(0.00, 123.93, 255.00)\",\"rgb(0.00, 124.44, 255.00)\",\"rgb(0.00, 124.95, 255.00)\",\"rgb(0.00, 125.20, 255.00)\",\"rgb(0.00, 125.72, 255.00)\",\"rgb(0.00, 126.22, 255.00)\",\"rgb(0.00, 126.48, 255.00)\",\"rgb(0.00, 126.99, 255.00)\",\"rgb(0.00, 127.50, 255.00)\",\"rgb(0.00, 127.75, 255.00)\",\"rgb(0.00, 128.27, 255.00)\",\"rgb(0.00, 128.78, 255.00)\",\"rgb(0.00, 129.03, 255.00)\",\"rgb(0.00, 129.54, 255.00)\",\"rgb(0.00, 129.80, 255.00)\",\"rgb(0.00, 130.31, 255.00)\",\"rgb(0.00, 130.81, 255.00)\",\"rgb(0.00, 131.07, 255.00)\",\"rgb(0.00, 131.58, 255.00)\",\"rgb(0.00, 132.09, 255.00)\",\"rgb(0.00, 132.34, 255.00)\",\"rgb(0.00, 132.86, 255.00)\",\"rgb(0.00, 133.37, 255.00)\",\"rgb(0.00, 133.62, 255.00)\",\"rgb(0.00, 134.13, 255.00)\",\"rgb(0.00, 134.64, 255.00)\",\"rgb(0.00, 134.90, 255.00)\",\"rgb(0.00, 135.41, 255.00)\",\"rgb(0.00, 135.92, 255.00)\",\"rgb(0.00, 136.17, 255.00)\",\"rgb(0.00, 136.68, 255.00)\",\"rgb(0.00, 136.94, 255.00)\",\"rgb(0.00, 137.45, 255.00)\",\"rgb(0.00, 137.96, 255.00)\",\"rgb(0.00, 138.21, 255.00)\",\"rgb(0.00, 138.72, 255.00)\",\"rgb(0.00, 139.23, 255.00)\",\"rgb(0.00, 139.49, 255.00)\",\"rgb(0.00, 140.00, 255.00)\",\"rgb(0.00, 140.51, 255.00)\",\"rgb(0.00, 140.76, 255.00)\",\"rgb(0.00, 141.27, 255.00)\",\"rgb(0.00, 141.78, 255.00)\",\"rgb(0.00, 142.04, 255.00)\",\"rgb(0.00, 142.55, 255.00)\",\"rgb(0.00, 142.80, 255.00)\",\"rgb(0.00, 143.31, 255.00)\",\"rgb(0.00, 143.82, 255.00)\",\"rgb(0.00, 144.07, 255.00)\",\"rgb(0.00, 144.58, 255.00)\",\"rgb(0.00, 145.09, 255.00)\",\"rgb(0.00, 145.35, 255.00)\",\"rgb(0.00, 145.86, 255.00)\",\"rgb(0.00, 146.37, 255.00)\",\"rgb(0.00, 146.62, 255.00)\",\"rgb(0.00, 147.13, 255.00)\",\"rgb(0.00, 147.64, 255.00)\",\"rgb(0.00, 147.90, 255.00)\",\"rgb(0.00, 148.41, 255.00)\",\"rgb(0.00, 148.92, 255.00)\",\"rgb(0.00, 149.17, 255.00)\",\"rgb(0.00, 149.69, 255.00)\",\"rgb(0.00, 149.94, 255.00)\",\"rgb(0.00, 150.45, 255.00)\",\"rgb(0.00, 150.96, 255.00)\",\"rgb(0.00, 151.22, 255.00)\",\"rgb(0.00, 151.72, 255.00)\",\"rgb(0.00, 152.23, 255.00)\",\"rgb(0.00, 152.49, 255.00)\",\"rgb(0.00, 153.00, 255.00)\",\"rgb(0.00, 153.51, 255.00)\",\"rgb(0.00, 153.76, 255.00)\",\"rgb(0.00, 154.28, 255.00)\",\"rgb(0.00, 154.78, 255.00)\",\"rgb(0.00, 155.04, 255.00)\",\"rgb(0.00, 155.55, 255.00)\",\"rgb(0.00, 156.06, 255.00)\",\"rgb(0.00, 156.31, 255.00)\",\"rgb(0.00, 156.82, 255.00)\",\"rgb(0.00, 157.08, 255.00)\",\"rgb(0.00, 157.59, 255.00)\",\"rgb(0.00, 158.10, 255.00)\",\"rgb(0.00, 158.35, 255.00)\",\"rgb(0.00, 158.87, 255.00)\",\"rgb(0.00, 159.38, 255.00)\",\"rgb(0.00, 159.63, 255.00)\",\"rgb(0.00, 160.14, 255.00)\",\"rgb(0.00, 160.65, 255.00)\",\"rgb(0.00, 160.91, 255.00)\",\"rgb(0.00, 161.41, 255.00)\",\"rgb(0.00, 161.93, 255.00)\",\"rgb(0.00, 162.18, 255.00)\",\"rgb(0.00, 162.69, 255.00)\",\"rgb(0.00, 163.20, 255.00)\",\"rgb(0.00, 163.46, 255.00)\",\"rgb(0.00, 163.97, 255.00)\",\"rgb(0.00, 164.22, 255.00)\",\"rgb(0.00, 164.73, 255.00)\",\"rgb(0.00, 165.24, 255.00)\",\"rgb(0.00, 165.50, 255.00)\",\"rgb(0.00, 166.00, 255.00)\",\"rgb(0.00, 166.52, 255.00)\",\"rgb(0.00, 166.77, 255.00)\",\"rgb(0.00, 167.28, 255.00)\",\"rgb(0.00, 167.79, 255.00)\",\"rgb(0.00, 168.05, 255.00)\",\"rgb(0.00, 168.56, 255.00)\",\"rgb(0.00, 169.06, 255.00)\",\"rgb(0.00, 169.32, 255.00)\",\"rgb(0.00, 169.83, 255.00)\",\"rgb(0.00, 170.09, 255.00)\",\"rgb(0.00, 170.59, 255.00)\",\"rgb(0.00, 171.11, 255.00)\",\"rgb(0.00, 171.36, 255.00)\",\"rgb(0.00, 171.87, 255.00)\",\"rgb(0.00, 172.38, 255.00)\",\"rgb(0.00, 172.64, 255.00)\",\"rgb(0.00, 173.15, 255.00)\",\"rgb(0.00, 173.66, 255.00)\",\"rgb(0.00, 173.91, 255.00)\",\"rgb(0.00, 174.42, 255.00)\",\"rgb(0.00, 174.93, 255.00)\",\"rgb(0.00, 175.19, 255.00)\",\"rgb(0.00, 175.69, 255.00)\",\"rgb(0.00, 176.20, 255.00)\",\"rgb(0.00, 176.46, 255.00)\",\"rgb(0.00, 176.97, 255.00)\",\"rgb(0.00, 177.22, 255.00)\",\"rgb(0.00, 177.73, 255.00)\",\"rgb(0.00, 178.24, 255.00)\",\"rgb(0.00, 178.50, 255.00)\",\"rgb(0.00, 179.01, 255.00)\",\"rgb(0.00, 179.52, 255.00)\",\"rgb(0.00, 179.77, 255.00)\",\"rgb(0.00, 180.28, 255.00)\",\"rgb(0.00, 180.79, 255.00)\",\"rgb(0.00, 181.05, 255.00)\",\"rgb(0.00, 181.56, 255.00)\",\"rgb(0.00, 182.07, 255.00)\",\"rgb(0.00, 182.32, 255.00)\",\"rgb(0.00, 182.83, 255.00)\",\"rgb(0.00, 183.34, 255.00)\",\"rgb(0.00, 183.60, 255.00)\",\"rgb(0.00, 184.11, 255.00)\",\"rgb(0.00, 184.36, 255.00)\",\"rgb(0.00, 184.88, 255.00)\",\"rgb(0.00, 185.38, 255.00)\",\"rgb(0.00, 185.64, 255.00)\",\"rgb(0.00, 186.15, 255.00)\",\"rgb(0.00, 186.66, 255.00)\",\"rgb(0.00, 186.91, 255.00)\",\"rgb(0.00, 187.42, 255.00)\",\"rgb(0.00, 187.94, 255.00)\",\"rgb(0.00, 188.19, 255.00)\",\"rgb(0.00, 188.70, 255.00)\",\"rgb(0.00, 189.21, 255.00)\",\"rgb(0.00, 189.47, 255.00)\",\"rgb(0.00, 189.97, 255.00)\",\"rgb(0.00, 190.48, 255.00)\",\"rgb(0.00, 190.74, 255.00)\",\"rgb(0.00, 191.25, 255.00)\",\"rgb(0.00, 191.50, 255.00)\",\"rgb(0.00, 192.02, 255.00)\",\"rgb(0.00, 192.53, 255.00)\",\"rgb(0.00, 192.78, 255.00)\",\"rgb(0.00, 193.29, 255.00)\",\"rgb(0.00, 193.80, 255.00)\",\"rgb(0.00, 194.06, 255.00)\",\"rgb(0.00, 194.56, 255.00)\",\"rgb(0.00, 195.08, 255.00)\",\"rgb(0.00, 195.33, 255.00)\",\"rgb(0.00, 195.84, 255.00)\",\"rgb(0.00, 196.35, 255.00)\",\"rgb(0.00, 196.61, 255.00)\",\"rgb(0.00, 197.12, 255.00)\",\"rgb(0.00, 197.37, 255.00)\",\"rgb(0.00, 197.88, 255.00)\",\"rgb(0.00, 198.39, 255.00)\",\"rgb(0.00, 198.65, 255.00)\",\"rgb(0.00, 199.16, 255.00)\",\"rgb(0.00, 199.67, 255.00)\",\"rgb(0.00, 199.92, 255.00)\",\"rgb(0.00, 200.43, 255.00)\",\"rgb(0.00, 200.94, 255.00)\",\"rgb(0.00, 201.20, 255.00)\",\"rgb(0.00, 201.71, 255.00)\",\"rgb(0.00, 202.22, 255.00)\",\"rgb(0.00, 202.47, 255.00)\",\"rgb(0.00, 202.98, 255.00)\",\"rgb(0.00, 203.49, 255.00)\",\"rgb(0.00, 203.75, 255.00)\",\"rgb(0.00, 204.26, 255.00)\",\"rgb(0.00, 204.51, 255.00)\",\"rgb(0.00, 205.02, 255.00)\",\"rgb(0.00, 205.53, 255.00)\",\"rgb(0.00, 205.79, 255.00)\",\"rgb(0.00, 206.30, 255.00)\",\"rgb(0.00, 206.81, 255.00)\",\"rgb(0.00, 207.06, 255.00)\",\"rgb(0.00, 207.57, 255.00)\",\"rgb(0.00, 208.08, 255.00)\",\"rgb(0.00, 208.33, 255.00)\",\"rgb(0.00, 208.84, 255.00)\",\"rgb(0.00, 209.35, 255.00)\",\"rgb(0.00, 209.61, 255.00)\",\"rgb(0.00, 210.12, 255.00)\",\"rgb(0.00, 210.63, 255.00)\",\"rgb(0.00, 210.88, 255.00)\",\"rgb(0.00, 211.39, 255.00)\",\"rgb(0.00, 211.65, 255.00)\",\"rgb(0.00, 212.16, 255.00)\",\"rgb(0.00, 212.67, 255.00)\",\"rgb(0.00, 212.92, 255.00)\",\"rgb(0.00, 213.44, 255.00)\",\"rgb(0.00, 213.94, 255.00)\",\"rgb(0.00, 214.20, 255.00)\",\"rgb(0.00, 214.71, 255.00)\",\"rgb(0.00, 215.22, 255.00)\",\"rgb(0.00, 215.47, 255.00)\",\"rgb(0.00, 215.98, 255.00)\",\"rgb(0.00, 216.50, 255.00)\",\"rgb(0.00, 216.75, 255.00)\",\"rgb(0.00, 217.26, 255.00)\",\"rgb(0.00, 217.51, 255.00)\",\"rgb(0.00, 218.03, 255.00)\",\"rgb(0.00, 218.53, 255.00)\",\"rgb(0.00, 218.79, 255.00)\",\"rgb(0.00, 219.30, 255.00)\",\"rgb(0.00, 219.81, 255.00)\",\"rgb(0.00, 220.06, 255.00)\",\"rgb(0.00, 220.57, 255.00)\",\"rgb(0.00, 221.09, 255.00)\",\"rgb(0.00, 221.34, 255.00)\",\"rgb(0.00, 221.85, 255.00)\",\"rgb(0.00, 222.36, 255.00)\",\"rgb(0.00, 222.62, 255.00)\",\"rgb(0.00, 223.12, 255.00)\",\"rgb(0.00, 223.63, 255.00)\",\"rgb(0.00, 223.89, 255.00)\",\"rgb(0.00, 224.40, 255.00)\",\"rgb(0.00, 224.66, 255.00)\",\"rgb(0.00, 225.16, 255.00)\",\"rgb(0.00, 225.68, 255.00)\",\"rgb(0.00, 225.93, 255.00)\",\"rgb(0.00, 226.44, 255.00)\",\"rgb(0.00, 226.95, 255.00)\",\"rgb(0.00, 227.21, 255.00)\",\"rgb(0.00, 227.72, 255.00)\",\"rgb(0.00, 228.22, 255.00)\",\"rgb(0.00, 228.48, 255.00)\",\"rgb(0.00, 228.99, 255.00)\",\"rgb(0.00, 229.50, 255.00)\",\"rgb(0.00, 229.75, 255.00)\",\"rgb(0.00, 230.27, 255.00)\",\"rgb(0.00, 230.78, 255.00)\",\"rgb(0.00, 231.03, 255.00)\",\"rgb(0.00, 231.54, 255.00)\",\"rgb(0.00, 231.80, 255.00)\",\"rgb(0.00, 232.31, 255.00)\",\"rgb(0.00, 232.81, 255.00)\",\"rgb(0.00, 233.07, 255.00)\",\"rgb(0.00, 233.58, 255.00)\",\"rgb(0.00, 234.09, 255.00)\",\"rgb(0.00, 234.34, 255.00)\",\"rgb(0.00, 234.86, 255.00)\",\"rgb(0.00, 235.37, 255.00)\",\"rgb(0.00, 235.62, 255.00)\",\"rgb(0.00, 236.13, 255.00)\",\"rgb(0.00, 236.64, 255.00)\",\"rgb(0.00, 236.90, 255.00)\",\"rgb(0.00, 237.41, 255.00)\",\"rgb(0.00, 237.92, 255.00)\",\"rgb(0.00, 238.17, 255.00)\",\"rgb(0.00, 238.68, 255.00)\",\"rgb(0.00, 238.94, 255.00)\",\"rgb(0.00, 239.44, 255.00)\",\"rgb(0.00, 239.95, 255.00)\",\"rgb(0.00, 240.21, 255.00)\",\"rgb(0.00, 240.72, 255.00)\",\"rgb(0.00, 241.23, 255.00)\",\"rgb(0.00, 241.48, 255.00)\",\"rgb(0.00, 241.99, 255.00)\",\"rgb(0.00, 242.50, 255.00)\",\"rgb(0.00, 242.76, 255.00)\",\"rgb(0.00, 243.27, 255.00)\",\"rgb(0.00, 243.78, 255.00)\",\"rgb(0.00, 244.03, 255.00)\",\"rgb(0.00, 244.54, 255.00)\",\"rgb(0.00, 244.80, 255.00)\",\"rgb(0.00, 245.31, 255.00)\",\"rgb(0.00, 245.82, 255.00)\",\"rgb(0.00, 246.07, 255.00)\",\"rgb(0.00, 246.58, 255.00)\",\"rgb(0.00, 247.09, 255.00)\",\"rgb(0.00, 247.35, 255.00)\",\"rgb(0.00, 247.86, 255.00)\",\"rgb(0.00, 248.37, 255.00)\",\"rgb(0.00, 248.62, 255.00)\",\"rgb(0.00, 249.13, 255.00)\",\"rgb(0.00, 249.64, 255.00)\",\"rgb(0.00, 249.90, 255.00)\",\"rgb(0.00, 250.41, 255.00)\",\"rgb(0.00, 250.92, 255.00)\",\"rgb(0.00, 251.17, 255.00)\",\"rgb(0.00, 251.69, 255.00)\",\"rgb(0.00, 251.94, 255.00)\",\"rgb(0.00, 252.45, 255.00)\",\"rgb(0.00, 252.96, 255.00)\",\"rgb(0.00, 253.22, 255.00)\",\"rgb(0.00, 253.72, 255.00)\",\"rgb(0.00, 254.23, 255.00)\"],\"width\":4},\"mode\":\"lines\",\"showlegend\":false,\"x\":[0.0,0.0,10.0,10.0,20.0,20.0,30.0,30.0,40.0,40.0,50.0,50.0,60.0,60.0,70.0,70.0,80.0,80.0,90.0,90.0,100.0,100.0,110.0,110.0,120.0,120.0,130.0,130.0,140.0,140.0,150.0,150.0,160.0,160.0,170.0,170.0,180.0,180.0,190.0,190.0,190.0,190.0,180.0,180.0,170.0,170.0,160.0,160.0,150.0,150.0,140.0,140.0,130.0,130.0,120.0,120.0,110.0,110.0,100.0,100.0,90.0,90.0,80.0,80.0,70.0,70.0,60.0,60.0,50.0,50.0,40.0,40.0,30.0,30.0,20.0,20.0,10.0,10.0,0.0,0.0,0.0,0.0,10.0,10.0,20.0,20.0,30.0,30.0,40.0,40.0,50.0,50.0,60.0,60.0,70.0,70.0,80.0,80.0,90.0,90.0,100.0,100.0,110.0,110.0,120.0,120.0,130.0,130.0,140.0,140.0,150.0,150.0,160.0,160.0,170.0,170.0,180.0,180.0,190.0,190.0,190.0,190.0,180.0,180.0,170.0,170.0,160.0,160.0,150.0,150.0,140.0,140.0,130.0,130.0,120.0,120.0,110.0,110.0,100.0,100.0,90.0,90.0,80.0,80.0,70.0,70.0,60.0,60.0,50.0,50.0,40.0,40.0,30.0,30.0,20.0,20.0,10.0,10.0,0.0,0.0,0.0,-0.4,-0.4,10.4,10.4,19.6,19.6,30.4,30.4,39.6,39.6,50.4,50.4,59.6,59.6,70.4,70.4,79.6,79.6,90.4,90.4,99.6,99.6,110.4,110.4,119.6,119.6,130.4,130.4,139.6,139.6,150.4,150.4,159.6,159.6,170.4,170.4,179.6,179.6,190.4,190.4,190.4,190.4,179.6,179.6,170.4,170.4,159.6,159.6,150.4,150.4,139.6,139.6,130.4,130.4,119.6,119.6,110.4,110.4,99.6,99.6,90.4,90.4,79.6,79.6,70.4,70.4,59.6,59.6,50.4,50.4,39.6,39.6,30.4,30.4,19.6,19.6,10.4,10.4,-0.4,-0.4,-0.4,-0.8,-0.8,10.8,10.8,19.2,19.2,30.8,30.8,39.2,39.2,50.8,50.8,59.2,59.2,70.8,70.8,79.2,79.2,90.8,90.8,99.2,99.2,110.8,110.8,119.2,119.2,130.8,130.8,139.2,139.2,150.8,150.8,159.2,159.2,170.8,170.8,179.2,179.2,190.8,190.8,190.8,190.8,179.2,179.2,170.8,170.8,159.2,159.2,150.8,150.8,139.2,139.2,130.8,130.8,119.2,119.2,110.8,110.8,99.2,99.2,90.8,90.8,79.2,79.2,70.8,70.8,59.2,59.2,50.8,50.8,39.2,39.2,30.8,30.8,19.2,19.2,10.8,10.8,-0.8,-0.8,-0.8,-1.2,-1.2,11.2,11.2,18.8,18.8,31.2,31.2,38.8,38.8,51.2,51.2,58.8,58.8,71.2,71.2,78.8,78.8,91.2,91.2,98.8,98.8,111.2,111.2,118.8,118.8,131.2,131.2,138.8,138.8,151.2,151.2,158.8,158.8,171.2,171.2,178.8,178.8,191.2,191.2,191.2,191.2,178.8,178.8,171.2,171.2,158.8,158.8,151.2,151.2,138.8,138.8,131.2,131.2,118.8,118.8,111.2,111.2,98.8,98.8,91.2,91.2,78.8,78.8,71.2,71.2,58.8,58.8,51.2,51.2,38.8,38.8,31.2,31.2,18.8,18.8,11.2,11.2,-1.2,-1.2,-1.2,-1.6,-1.6,11.6,11.6,18.4,18.4,31.6,31.6,38.4,38.4,51.6,51.6,58.4,58.4,71.6,71.6,78.4,78.4,91.6,91.6,98.4,98.4,111.6,111.6,118.4,118.4,131.6,131.6,138.4,138.4,151.6,151.6,158.4,158.4,171.6,171.6,178.4,178.4,191.6,191.6,191.6,191.6,178.4,178.4,171.6,171.6,158.4,158.4,151.6,151.6,138.4,138.4,131.6,131.6,118.4,118.4,111.6,111.6,98.4,98.4,91.6,91.6,78.4,78.4,71.6,71.6,58.4,58.4,51.6,51.6,38.4,38.4,31.6,31.6,18.4,18.4,11.6,11.6,-1.6,-1.6,-1.6,-2.0,-2.0,12.0,12.0,18.0,18.0,32.0,32.0,38.0,38.0,52.0,52.0,58.0,58.0,72.0,72.0,78.0,78.0,92.0,92.0,98.0,98.0,112.0,112.0,118.0,118.0,132.0,132.0,138.0,138.0,152.0,152.0,158.0,158.0,172.0,172.0,178.0,178.0,192.0,192.0,192.0,192.0,178.0,178.0,172.0,172.0,158.0,158.0,152.0,152.0,138.0,138.0,132.0,132.0,118.0,118.0,112.0,112.0,98.0,98.0,92.0,92.0,78.0,78.0,72.0,72.0,58.0,58.0,52.0,52.0,38.0,38.0,32.0,32.0,18.0,18.0,12.0,12.0,-2.0,-2.0,-2.0,-2.4,-2.4,12.4,12.4,17.6,17.6,32.4,32.4,37.6,37.6,52.4,52.4,57.6,57.6,72.4,72.4,77.6,77.6,92.4,92.4,97.6,97.6,112.4,112.4,117.6,117.6,132.4,132.4,137.6,137.6,152.4,152.4,157.6,157.6,172.4,172.4,177.6,177.6,192.4,192.4,192.4,192.4,177.6,177.6,172.4,172.4,157.6,157.6,152.4,152.4,137.6,137.6,132.4,132.4,117.6,117.6,112.4,112.4,97.6,97.6,92.4,92.4,77.6,77.6,72.4,72.4,57.6,57.6,52.4,52.4,37.6,37.6,32.4,32.4,17.6,17.6,12.4,12.4,-2.4,-2.4,-2.4,-2.8,-2.8,12.8,12.8,17.2,17.2,32.8,32.8,37.2,37.2,52.8,52.8,57.2,57.2,72.8,72.8,77.2,77.2,92.8,92.8,97.2,97.2,112.8,112.8,117.2,117.2,132.8,132.8,137.2,137.2,152.8,152.8,157.2,157.2,172.8,172.8,177.2,177.2,192.8,192.8,192.8,192.8,177.2,177.2,172.8,172.8,157.2,157.2,152.8,152.8,137.2,137.2,132.8,132.8,117.2,117.2,112.8,112.8,97.2,97.2,92.8,92.8,77.2,77.2,72.8,72.8,57.2,57.2,52.8,52.8,37.2,37.2,32.8,32.8,17.2,17.2,12.8,12.8,-2.8,-2.8,-2.8,-3.2,-3.2,13.2,13.2,16.8,16.8,33.2,33.2,36.8,36.8,53.2,53.2,56.8,56.8,73.2,73.2,76.8,76.8,93.2,93.2,96.8,96.8,113.2,113.2,116.8,116.8,133.2,133.2,136.8,136.8,153.2,153.2,156.8,156.8,173.2,173.2,176.8,176.8,193.2,193.2,193.2,193.2,176.8,176.8,173.2,173.2,156.8,156.8,153.2,153.2,136.8,136.8,133.2,133.2,116.8,116.8,113.2,113.2,96.8,96.8,93.2,93.2,76.8,76.8,73.2,73.2,56.8,56.8,53.2,53.2,36.8,36.8,33.2,33.2,16.8,16.8,13.2,13.2,-3.2,-3.2,-3.2,-3.6,-3.6,13.6,13.6,16.4,16.4,33.6,33.6,36.4,36.4,53.6,53.6,56.4,56.4,73.6,73.6,76.4,76.4,93.6,93.6,96.4,96.4,113.6,113.6,116.4,116.4,133.6,133.6,136.4,136.4,153.6,153.6,156.4,156.4,173.6,173.6,176.4,176.4,193.6,193.6,193.6,193.6,176.4,176.4,173.6,173.6,156.4,156.4,153.6,153.6,136.4,136.4,133.6,133.6,116.4,116.4,113.6,113.6,96.4,96.4,93.6,93.6,76.4,76.4,73.6,73.6,56.4,56.4,53.6,53.6,36.4,36.4,33.6,33.6,16.4,16.4,13.6,13.6,-3.6,-3.6,-3.6,-4.0,-4.0,14.0,14.0,16.0,16.0,34.0,34.0,36.0,36.0,54.0,54.0,56.0,56.0,74.0,74.0,76.0,76.0,94.0,94.0,96.0,96.0,114.0,114.0,116.0,116.0,134.0,134.0,136.0,136.0,154.0,154.0,156.0,156.0,174.0,174.0,176.0,176.0,194.0,194.0,194.0,194.0,176.0,176.0,174.0,174.0,156.0,156.0,154.0,154.0,136.0,136.0,134.0,134.0,116.0,116.0,114.0,114.0,96.0,96.0,94.0,94.0,76.0,76.0,74.0,74.0,56.0,56.0,54.0,54.0,36.0,36.0,34.0,34.0,16.0,16.0,14.0,14.0,-4.0,-4.0,-4.0,-4.4,-4.4,14.4,14.4,15.6,15.6,34.4,34.4,35.6,35.6,54.4,54.4,55.6,55.6,74.4,74.4,75.6,75.6,94.4,94.4,95.6,95.6,114.4,114.4,115.6,115.6,134.4,134.4,135.6,135.6,154.4,154.4,155.6,155.6,174.4,174.4,175.6,175.6,194.4,194.4,194.4,194.4,175.6,175.6,174.4,174.4,155.6,155.6,154.4,154.4,135.6,135.6,134.4,134.4,115.6,115.6,114.4,114.4,95.6,95.6,94.4,94.4,75.6,75.6,74.4,74.4,55.6,55.6,54.4,54.4,35.6,35.6,34.4,34.4,15.6,15.6,14.4,14.4,-4.4,-4.4,-4.4,-4.8,-4.8,14.8,14.8,15.2,15.2,34.8,34.8,35.2,35.2,54.8,54.8,55.2,55.2,74.8,74.8,75.2,75.2,94.8,94.8,95.2,95.2,114.8,114.8,115.2,115.2,134.8,134.8,135.2,135.2,154.8,154.8,155.2,155.2,174.8,174.8,175.2,175.2,194.8,194.8,194.8,194.8,175.2,175.2,174.8,174.8,155.2,155.2,154.8,154.8,135.2,135.2,134.8,134.8,115.2,115.2,114.8,114.8,95.2,95.2,94.8,94.8,75.2,75.2,74.8,74.8,55.2,55.2,54.8,54.8,35.2,35.2,34.8,34.8,15.2,15.2,14.8,14.8,-4.8,-4.8,-4.8,0.0,0.0,10.0,10.0,20.0,20.0,30.0,30.0,40.0,40.0,50.0,50.0,60.0,60.0,70.0,70.0,80.0,80.0,90.0,90.0,100.0,100.0,110.0,110.0,120.0,120.0,130.0,130.0,140.0,140.0,150.0,150.0,160.0,160.0,170.0,170.0,180.0,180.0,190.0,190.0,190.0,190.0,180.0,180.0,170.0,170.0,160.0,160.0,150.0,150.0,140.0,140.0,130.0,130.0,120.0,120.0,110.0,110.0,100.0,100.0,90.0,90.0,80.0,80.0,70.0,70.0,60.0,60.0,50.0,50.0,40.0,40.0,30.0,30.0,20.0,20.0,10.0,10.0,0.0,0.0,0.0],\"y\":[0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,-0.0,-0.0,10.0,10.0,0.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-0.0,-0.0,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.4,0.4,10.4,10.4,0.0,-10.0,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.4,-10.4,-20.4,-20.4,-10.0,-0.0,-0.0,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.8,0.8,10.8,10.8,0.0,-10.0,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.8,-10.8,-20.8,-20.8,-10.0,-0.0,-0.0,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,1.2,1.2,11.2,11.2,0.0,-10.0,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-11.2,-11.2,-21.2,-21.2,-10.0,-0.0,-0.0,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,1.6,1.6,11.6,11.6,0.0,-10.0,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-11.6,-11.6,-21.6,-21.6,-10.0,-0.0,-0.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,2.0,2.0,12.0,12.0,0.0,-10.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-12.0,-12.0,-22.0,-22.0,-10.0,-0.0,-0.0,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,2.4,2.4,12.4,12.4,0.0,-10.0,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-12.4,-12.4,-22.4,-22.4,-10.0,-0.0,-0.0,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,2.8,2.8,12.8,12.8,0.0,-10.0,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-12.8,-12.8,-22.8,-22.8,-10.0,-0.0,-0.0,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,3.2,3.2,13.2,13.2,0.0,-10.0,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-13.2,-13.2,-23.2,-23.2,-10.0,-0.0,-0.0,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,3.6,3.6,13.6,13.6,0.0,-10.0,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-13.6,-13.6,-23.6,-23.6,-10.0,-0.0,-0.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,4.0,4.0,14.0,14.0,0.0,-10.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-14.0,-14.0,-24.0,-24.0,-10.0,-0.0,-0.0,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,4.4,4.4,14.4,14.4,0.0,-10.0,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-14.4,-14.4,-24.4,-24.4,-10.0,-0.0,-0.0,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,4.8,4.8,14.8,14.8,0.0,-10.0,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-14.8,-14.8,-24.8,-24.8,-10.0,-0.0,-0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,0.0,10.0,10.0,0.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,-10.0,-20.0,-20.0,-10.0,0.0],\"z\":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],\"type\":\"scatter3d\"},{\"marker\":{\"color\":\"red\",\"size\":2},\"mode\":\"markers\",\"showlegend\":false,\"x\":[],\"y\":[],\"z\":[],\"type\":\"scatter3d\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[-4.801000000000016,194.80101000000005]},\"yaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[-104.80100500000005,94.80100500000002]},\"zaxis\":{\"backgroundcolor\":\"black\",\"nticks\":10,\"range\":[0,199.60201000000006]},\"camera\":{\"eye\":{\"x\":-0.5,\"y\":-1.0,\"z\":0.0},\"center\":{\"x\":0,\"y\":0,\"z\":-0.5}},\"aspectmode\":\"cube\"},\"margin\":{\"l\":10,\"r\":10,\"b\":10,\"t\":10,\"pad\":4},\"paper_bgcolor\":\"black\",\"width\":800,\"height\":500}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('67fbfd06-74de-4f4b-86ea-0c0174d75636');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "l17PHRMgkv2k"
},
"outputs": [],
"source": [
"# printer/gcode parameters\n",
"\n",
"design_name = 'my_design'\n",
"nozzle_temp = 210\n",
"bed_temp = 40\n",
"print_speed = 1000\n",
"printer_name='prusa_i3' # generic / ultimaker2plus / prusa_i3 / ender_3 / cr_10 / bambulab_x1 / toolchanger_T0"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "DeWKjlzbPC0u"
},
"outputs": [],
"source": [
"# design parameters\n",
"\n",
"EW = 0.55 # extrusion width\n",
"EH = 0.2 # extrusion height (and layer height)\n",
"initial_z = EH*0.8 # initial nozzle position is set to 0.6x the extrusion height to get a bit of 'squish' for good bed adhesion\n",
"# layers = 50"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "kLPh7aTwQKrF"
},
"outputs": [],
"source": [
"# # generate the design (make sure you've run the above cells before running this cell)\n",
"\n",
"# steps = []\n",
"# for layer in range(layers):\n",
"# steps.append(fc.Point(x=50, y=50, z=initial_z+layer*EH))\n",
"# steps.append(fc.Point(x=100, y=50, z=initial_z+layer*EH))\n",
"# steps.append(fc.Point(x=100, y=100, z=initial_z+layer*EH))\n",
"# steps.append(fc.Point(x=50, y=100, z=initial_z+layer*EH))\n",
"# steps.append(fc.Point(x=50, y=50, z=initial_z+layer*EH))\n",
" \n",
"# # instead of the above for-loop code, you can create the exact same design using built-in FullControl functions (uncomment the next two lines):\n",
"# # rectangle_steps = fc.rectangleXY(fc.Point(x=50, y=50, z=initial_z), 50, 50)\n",
"# # steps = fc.move(rectangle_steps, fc.Vector(z=EH), copy=True, copy_quantity=layers)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tggFoUeJReQR",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"outputId": "5479ede8-1bcf-4f59-9763-06c46d8d4fe2"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Javascript object>"
],
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Javascript object>"
],
"application/javascript": [
"download(\"download_dad2f2fe-ddf2-48ea-90d3-1152695940d6\", \"my_design.gcode\", 3278)"
]
},
"metadata": {}
}
],
"source": [
"# create and download gcode for the design\n",
"\n",
"gcode_controls = fc.GcodeControls(\n",
" printer_name = printer_name, \n",
" initialization_data={\n",
" 'primer': 'front_lines_then_y', \n",
" 'print_speed': print_speed,\n",
" \"nozzle_temp\": nozzle_temp,\n",
" \"bed_temp\": bed_temp,\n",
" \"extrusion_width\": EW,\n",
" \"extrusion_height\": EH})\n",
"gcode = fc.transform(steps, 'gcode', gcode_controls)\n",
"open(f'{design_name}.gcode', 'w').write(gcode)\n",
"files.download(f'{design_name}.gcode')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aRvKR1bCkv2r"
},
"source": [
"#### please tell us what you're doing with FullControl!\n",
"\n",
"- tag FullControlXYZ on social media ([twitter](https://twitter.com/FullControlXYZ), [instagram](https://www.instagram.com/fullcontrolxyz/), [linkedin](https://www.linkedin.com/in/andrew-gleadall-068587119/), [tiktok](https://www.tiktok.com/@fullcontrolxyz))\n",
"- email [info@fullcontrol.xyz](mailto:info@fullcontrol.xyz)\n",
"- post on the [subreddit](https://reddit.com/r/fullcontrol)\n",
"- post in the [github discussions or issues tabs](https://github.com/FullControlXYZ/fullcontrol/issues)\n",
"\n",
"in publications, please cite the original FullControl paper and the github repo for the new python version:\n",
"\n",
"- Gleadall, A. (2021). FullControl GCode Designer: open-source software for unconstrained design in additive manufacturing. Additive Manufacturing, 46, 102109. \n",
"- Gleadall, A. and Leas, D. (2023). FullControl [electronic resource: python source code]. available at: https://github.com/FullControlXYZ/fullcontrol"
]
},
{
"cell_type": "markdown",
"source": [
"## template for importing a function from a gist to colab:"
],
"metadata": {
"id": "-I2mhsIaDEM7"
}
},
{
"cell_type": "code",
"source": [
"# replace my_gist_url, my_module_name and my_function_name\n",
"gist_url = 'my_gist_url'\n",
"!git clone $gist_url imported_module --quiet\n",
"from imported_module.my_module_name import my_function_name"
],
"metadata": {
"id": "W2gPVs8pEBXM"
},
"execution_count": null,
"outputs": []
}
],
"metadata": {
"colab": {
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment