Skip to content

Instantly share code, notes, and snippets.

@mirrornerror
Created April 30, 2021 10:10
Show Gist options
  • Save mirrornerror/9ade8fc4b8ec54368a1fe7e4541f4a73 to your computer and use it in GitHub Desktop.
Save mirrornerror/9ade8fc4b8ec54368a1fe7e4541f4a73 to your computer and use it in GitHub Desktop.
IK_FABRIK_AngleLimit
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "## Inverse Kinematics: FABRIK + Angle Limit"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2021-04-29T18:21:46.787531Z",
"start_time": "2021-04-29T18:21:45.587705Z"
},
"execution": {
"iopub.execute_input": "2021-03-09T19:28:06.847Z",
"iopub.status.busy": "2021-03-09T19:28:06.829Z",
"iopub.status.idle": "2021-03-09T19:28:06.867Z",
"shell.execute_reply": "2021-03-09T19:28:07.034Z"
},
"trusted": true
},
"cell_type": "code",
"source": "%matplotlib notebook\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom math import tau, pi, sin, cos",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2021-04-29T18:21:46.853424Z",
"start_time": "2021-04-29T18:21:46.790341Z"
},
"code_folding": [],
"execution": {
"iopub.execute_input": "2021-03-09T19:28:06.922Z",
"iopub.status.busy": "2021-03-09T19:28:06.898Z",
"iopub.status.idle": "2021-03-09T19:28:06.936Z",
"shell.execute_reply": "2021-03-09T19:28:07.040Z"
},
"trusted": true
},
"cell_type": "code",
"source": "class Arm:\n def __init__(self, ax, ay, length, angle, minAngle=-pi/2, maxAngle=pi/2):\n self.ax = ax\n self.ay = ay\n self.length = length\n self.angle = convTheta(angle)\n self.bx = self.ax + self.length * cos(self.angle)\n self.by = self.ay + self.length * sin(self.angle)\n self.minAngle = convTheta(minAngle)\n self.maxAngle = convTheta(maxAngle)\n\n def backward(self, tx, ty):\n theta = np.arctan2(ty - self.ay, tx - self.ax)\n self.bx = tx\n self.by = ty\n self.ax = tx - self.length * cos(theta)\n self.ay = ty - self.length * sin(theta)\n self.angle = convTheta(theta)\n \n def forward(self, baseX, baseY):\n theta = np.arctan2(self.by - baseY, self.bx - baseX)\n self.ax = baseX\n self.ay = baseY\n self.bx = baseX + self.length * cos(theta)\n self.by = baseY + self.length * sin(theta) \n self.angle = convTheta(theta)\n \n def backward2(self, tx, ty, prevTheta):\n theta = convTheta(np.arctan2(ty - self.ay, tx - self.ax) - prevTheta)\n if theta < self.minAngle:\n theta = self.minAngle\n elif theta > self.maxAngle:\n theta = self.maxAngle\n self.angle = convTheta(theta + prevTheta)\n self.bx = tx\n self.by = ty\n self.ax = self.bx - self.length * cos(self.angle)\n self.ay = self.by - self.length * sin(self.angle)\n \n def forward2(self, baseX, baseY, prevTheta):\n theta = convTheta(np.arctan2(self.by - baseY, self.bx - baseX) - prevTheta)\n if theta < self.minAngle:\n theta = self.minAngle\n elif theta > self.maxAngle:\n theta = self.maxAngle\n self.angle = convTheta(theta + prevTheta)\n self.ax = baseX\n self.ay = baseY\n self.bx = self.ax + self.length * cos(self.angle)\n self.by = self.ay + self.length * sin(self.angle)\n\ndef convTheta(theta):\n theta = theta % tau\n if theta > pi:\n theta = theta - tau\n return theta ",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2021-04-29T18:23:43.029068Z",
"start_time": "2021-04-29T18:23:42.956625Z"
},
"code_folding": [],
"trusted": true
},
"cell_type": "code",
"source": "N = 4 # the number of link\nOX = 0 # offset x: Base coodinates\nOY = 0 # offset y: Base coodinates\n\nfab = []\nX, Y = [], []\nfabA = []\nAX, AY = [], []\nlinkLength = 1\ninitTheta = np.radians(90)\n\nfor i in range(N):\n if i == 0:\n fab.append(Arm(OX, OY, linkLength, initTheta))\n fabA.append(Arm(OX, OY, linkLength, initTheta, 0, pi))\n else:\n fab.append(Arm(fab[i-1].bx, fab[i-1].by, linkLength, initTheta))\n fabA.append(Arm(fabA[i-1].bx, fabA[i-1].by, linkLength, initTheta, -pi/2, pi/2))\n\n X.append([fab[i].ax, fab[i].bx])\n Y.append([fab[i].ay, fab[i].by])\n AX.append([fabA[i].ax, fabA[i].bx])\n AY.append([fabA[i].ay, fabA[i].by])\n \nfig = plt.figure(figsize=(5,5))\nax = fig.add_subplot(111)\nax.axis([-1,N+1,-1,N+1])\nax.grid()\nax.plot(X, Y, color='tab:blue', alpha=0.6)\nax.scatter(X, Y, color='tab:blue', alpha=0.6)\nax.plot(AX, AY, color='orange', alpha=0.6)\nax.scatter(AX, AY, color='orange', alpha=0.6)",
"execution_count": 9,
"outputs": [
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n if (this.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n }\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n var resizeObserver = new ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n resizeObserver.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = 'image/png';\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.which === this._key) {\n return;\n } else {\n this._key = event.which;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.which !== 17) {\n value += 'ctrl+';\n }\n if (event.altKey && event.which !== 18) {\n value += 'alt+';\n }\n if (event.shiftKey && event.which !== 16) {\n value += 'shift+';\n }\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data']);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.one(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": "<IPython.core.display.Javascript object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<img src=\"data:image/png;base64,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c889zdkccMABz/1309Prve177703Lrroorjiiiui/Pd58+bF8uXL421ve1u8733viwULFvSeUVcBPPTQQ8/757r8s7169ermdN/znvfEpZde2tVT57z+h0D5u/1f//Vf4zvf+U58//vfj9KJOXPmxD777BPHHXdc/O7v/m780i/9Erw6SmDt2rVx5ZVXNtf1m266KX7605/Gww8/HE899VQsXrw4XvrSl8av/uqvNj1YunRpRylwWtsicOaZZ8YFF1zw3B9/+9vfjhNPPBFgHSQwNjY2o7N6zWteE1dfffWMnsuT8gkw0POZ2iqedNJJ2/yHkYFuG2tjvIzyd77znbFmzZqtnshLXvKS5ubt4IMP9j5R3G+VwPYuyAz07pem3Ghde+21057oqaeeGpdccknMnTt32ufyBC8C3/rWt+Lkk0+e1vTuu+8ef//3fx+vf/3rp30uT+gGgVtvvTWOPPLI2Lx5MwO9G5Fu9ywY6B4hM9A9chqKy/JvS6+55prmtXbbbbfmL+zrr78+yk/WGehDiUDyIuXiW35Ctn79+li0aFGcddZZUf5lTPnJyWWXXRaf+cxnmtc97LDDmp+ulOfw6BaBLS/I++23Xxx++OFx1VVXNSfJQO9W1ls7m/JOmbvuuqv5afkpp5zS/KR8//33j4mJiebv+I9//OPNT1TL47d/+7fji1/8Yveh9OwMy0D/nd/5nebv/l/8xV+M8vfAsmXLYnJyMn7yk5/El7/85fjqV7/adKL8C5pyLXj5y1/eM0r9O92S/zHHHNPkveeeezbvrCkPfoLe3S48ez/w+7//+827J7f1WLhwYRx00EHdBVH5mTHQKw9omPYuvvjiZpytWLGieetzeRzMN3yBAAARaklEQVR44IGxatUqBvowg0h+rWffGTF79uzmp2jHHnvs816hvK2tvL2tPM4555z4yEc+kuwAuVETOPvss+Ooo45q/rPXXns1H1d59sLLQB91OvrXf/Ob3xzvfve7461vfWuMj4//3As+8sgjcfzxx8cdd9zR/Fn5e4K3u+tzGeYrlOG9tey39PDP//zP8Ru/8RvN//Wbv/mb8ZWvfGWYFnmtERD45Cc/GX/yJ3/S/Av6kv15553HQB9BDsN8yWcHerkv+OhHPzrMl+a1BiDAQB8AVh+fykD3Tr38W/HyL1zK44wzzohPf/rTP3dC5d+g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\" width=\"500\">",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x7fd227cc67f0>"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2021-04-29T18:23:44.438264Z",
"start_time": "2021-04-29T18:23:44.377108Z"
},
"code_folding": [
1
],
"trusted": true
},
"cell_type": "code",
"source": "# FABRIK: Backward + Forward\ndef FABRIK(arm, tx, ty):\n for i in reversed(range(N)):\n arm[i].backward(tx, ty)\n tx = arm[i].ax\n ty = arm[i].ay\n \n baseX, baseY = OX, OY\n for i in range(N):\n arm[i].forward(baseX, baseY);\n baseX = arm[i].bx\n baseY = arm[i].by\n \n PX, PY = [], []\n for i in range(N):\n PX.append(arm[i].ax)\n PY.append(arm[i].ay) \n PX.append(arm[N-1].bx)\n PY.append(arm[N-1].by)\n \n return PX, PY\n\n# FABRIK + AngleLimit\ndef FABRIK2(arm, tx, ty):\n for i in reversed(range(N)):\n if i == N-1:\n arm[i].backward2(tx, ty, 0)\n else:\n arm[i].backward2(tx, ty, arm[i+1].angle)\n tx = arm[i].ax\n ty = arm[i].ay \n \n baseX, baseY = OX, OY\n for i in range(N):\n if i == 0:\n arm[i].forward2(baseX, baseY, 0)\n else:\n arm[i].forward2(baseX, baseY, arm[i-1].angle)\n baseX = arm[i].bx\n baseY = arm[i].by\n \n PX, PY = [], []\n for i in range(N):\n PX.append(arm[i].ax)\n PY.append(arm[i].ay) \n PX.append(arm[N-1].bx)\n PY.append(arm[N-1].by)\n \n return PX, PY\n\ntx, ty = 3.0, 2.0\nX, Y = FABRIK(fab, tx, ty)\nAX, AY = FABRIK2(fabA, tx, ty)\n\nfig = plt.figure(figsize=(5,5))\nax = fig.add_subplot(111)\nax.axis([-1,N+1,-1,N+1])\nax.grid()\nax.plot(X, Y, color='tab:blue', alpha=0.6)\nax.scatter(X, Y, color='tab:blue', alpha=0.6)\nax.plot(AX, AY, color='orange', alpha=0.6)\nax.scatter(AX, AY, color='orange', alpha=0.6)\nax.plot([tx],[ty], marker='x', ms=20, color='red')",
"execution_count": 10,
"outputs": [
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n if (this.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n }\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n var resizeObserver = new ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n resizeObserver.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = 'image/png';\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.which === this._key) {\n return;\n } else {\n this._key = event.which;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.which !== 17) {\n value += 'ctrl+';\n }\n if (event.altKey && event.which !== 18) {\n value += 'alt+';\n }\n if (event.shiftKey && event.which !== 16) {\n value += 'shift+';\n }\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data']);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.one(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": "<IPython.core.display.Javascript object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<img src=\"data:image/png;base64,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adCgQcQKEXANeiGF7mSYcelT3H7t119/rS6JiLs8aI0XENAbb95SRxTQW6pc7Xa2bZr7fPPNlyZOnJi23HLLv2wX1xnF9UbRzjrrrBQf0lq9BQT0etf376OLhaHiOtJHH320euiEE06obqWllSMQZ8b333//tOCCC3Y46EsvvTSddNJJ1ePx2R+rN8fnhlaGgIBe/zo/8MAD1W3UOnpd//02a5dccsns94T66+Q1QgE9r3o0tTdx7+tJkyb9pQ8nn3xymj59eurXr9/s61HaNth5553Tcsst19Q+O3jnAnE/y6222qq63+0iiyySYtr74MGDq/++/fbbq4Vjoq255ppp6tSpadFFF+18p7ZoKYF4Xc95b/u4DjmuMYsWz40jjjjiL+Ppyi0YWwqg8M7uu+++afz48ZVCTHGPcB6Lw3XU+vTpU70faPURiMA9c+bMFM+FWL0/7ncenwfx/1555ZVqQbi22RVR/1jBeYcddqgPgJF0KiCgd0rU8hvE+0CcGY/3gThZE/+90EILpfhO8OSTT1azLOM7f7R4n3j88cerW3BqjRcQ0Btvnu0R57z2rCudNP2tK0p5bBO/mh500EHp+++/b7dD8WU8vpDFPS+1+gl09/rDP//8s34IBY9obmG8PZZVVlklxSwLrT4CbbPhOhvRSiutlK677ro0ZMiQzjb1eM0EBPSaFbSd4XT1fSAC/DXXXFNd9qg1R0BAb457lkcV0LMsS4916sMPP0yXX355FcRj0Y84SxKBfOjQoenYY49Nffv27bFj2VFeAgJ6XvVodG8E9EaL53e8uI40zobFD+ux3khMZY0zZTHlfdlll00bbbRRinsfDxs2zGdBfuVrSI8E9IYwN/UgTz31VIp/nn322eo2m3HmPE7cxGya/v37pwEDBqSDDz74H5dCNrXThR5cQC+08IZNgAABAgQIECBAgAABAnkJCOh51UNvCBAgQIAAAQIECBAgQKBQAQG90MIbNgECBAgQIECAAAECBAjkJSCg51UPvSFAgAABAgQIECBAgACBQgUE9EILb9gECBAgQIAAAQIECBAgkJeAgJ5XPfSGAAECBAgQIECAAAECBAoVENALLbxhEyBAgAABAgQIECBAgEBeAgJ6XvXQGwIECBAgQIAAAQIECBAoVEBAL7Twhk2AAAECBAgQIECAAAECeQkI6HnVQ28IECBAgAABAgQIECBAoFABAb3Qwhs2AQIECBAgQIAAAQIECOQlIKDnVQ+9IUCAAAECBAgQIECAAIFCBQT0Qgtv2AQIECBAgAABAgQIECCQl4CAnlc99IYAAQIECBAgQIAAAQIEChUQ0AstvGETIECAAAECBAgQIECAQF4CAnpe9dAbAgQIECBAgAABAgQIEChUQEAvtPCGTYAAAQIECBAgQIAAAQJ5CQjoedVDbwgQIECAAAECBAgQIECgUAEBvdDCGzYBAgQIECBAgAABAgQI5CUgoOdVD70hQIAAAQIECBAgQIAAgUIFBPRCC2/YBAgQIECAAAECBAgQIJCXgICeVz30hgABAgQIECBAgAABAgQKFRDQCy28YRMgQIAAAQIECBAgQIBAXgICel710BsCBAgQIECAAAECBAgQKFRAQC+08IZNgAABAgQIECBAgAABAnkJCOh51UNvCBAgQIAAAQIECBAgQKBQAQG90MIbNgECBAgQIECAAAECBAjkJSCg51UPvSFAgAABAgQIECBAgACBQgUE9EILb9gECBAgQIAAAQIECBAgkJeAgJ5XPfSGAAECBAgQIECAAAECBAoVENALLbxhEyBAgAABAgQIECBAgEBeAgJ6XvXQGwIECBAgQIAAAQIECBAoVEBAL7Twhk2AAAECBAgQIECAAAECeQkI6HnVQ28IECBAgAABAgQIECBAoFABAb3Qwhs2AQIECBAgQIAAAQIECOQlIKDnVQ+9IUCAAAECBAgQIECAAIFCBQT0Qgtv2AQIECBAgAABAgQIECCQl4CAnlc99IYAAQIECBAgQIAAAQIEChUQ0AstvGETIECAAAECBAgQIECAQF4CAnpe9dAbAgQIECBAgAABAgQIEChUQEAvtPCGTYAAAQIECBAgQIAAAQJ5CQjoedVDbwgQIECAAAECBAgQIECgUAEBvdDCGzYBAgQIECBAgAABAgQI5CUgoOdVD70hQIAAAQIECBAgQIAAgUIFBPRCC2/YBAgQIECAAAECBAgQIJCXgICeVz30hgABAgQIECBAgAABAgQKFRDQCy28YRMgQIAAAQIECBAgQIBAXgICel710BsCBAgQIECAAAECBAgQKFRAQC+08IZNgAABAgQIECBAgAABAnkJCOh51UNvCBAgQIAAAQIECBAgQKBQAQG90MIbNgECBAgQIECAAAECBAjkJSCg51UPvSFAgAABAgQIECBAgACBQgUE9EILb9gECBAgQIAAAQIECBAgkJeAgJ5XPfSGAAECBAgQIECAAAECBAoVENALLbxhEyBAgAABAgQIECBAgEBeAgJ6XvXQGwIECBAgQIAAAQIECBAoVEBAL7Twhk2AAAECBAgQIECAAAECeQkI6HnVQ28IECBAgAABAgQIECBAoFABAb3Qwhs2AQIECBAgQIAAAQIECOQlIKDnVQ+9IUCAAAECBAgQIECAAIFCBQT0Qgtv2AQIECBAgAABAgQIECCQl4CAnlc99IYAAQIECBAgQIAAAQIEChUQ0AstvGETIECAAAECBAgQIECAQF4CAnpe9dAbAgQIECBAgAABAgQIEChUQEAvtPCGTYAAAQIECBAgQIAAAQJ5CQjoedVDbwgQIECAAAECBAgQIECgUAEBvdDCGzYBAgQIECBAgAABAgQI5CUgoOdVD70hQIAAAQIECBAgQIAAgUIFBPRCC2/YBAgQIECAAAECBAgQIJCXwP8BXkKVMF04ViEAAAAASUVORK5CYII=\" width=\"500\">",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0x7fd22895e070>]"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2021-04-29T18:23:46.428221Z",
"start_time": "2021-04-29T18:23:46.329464Z"
},
"code_folding": [],
"trusted": true
},
"cell_type": "code",
"source": "def motion(event):\n mx = event.xdata\n my = event.ydata\n Mouse.set_data(mx, my)\n \n FX, FY = FABRIK(fab, mx, my)\n FLine.set_data(FX, FY)\n FDot.set_data(FX, FY)\n \n AX, AY = FABRIK2(fabA, mx, my)\n ALine.set_data(AX, AY)\n ADot.set_data(AX, AY)\n \n plt.draw()\n\nfig = plt.figure(figsize=(5,5))\nax = fig.add_subplot(111)\nax.axis([-1,N+1,-1,N+1])\nax.grid()\n\nFLine, = ax.plot([],[], linestyle='-', color='orange', alpha=0.6, label='FABRIK')\nFDot, = ax.plot([],[], marker='o', color='orange', alpha=0.6)\nALine, = ax.plot([],[], linestyle='-', color='tab:blue', alpha=0.6, label='A_LIMIT')\nADot, = ax.plot([],[], marker='o', color='tab:blue', alpha=0.6)\n\nMouse, = ax.plot([],[], marker='x', ms=20, color='red')\nplt.connect('motion_notify_event', motion)\nplt.legend(loc='lower right')\nplt.show()",
"execution_count": 11,
"outputs": [
{
"data": {
"application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n if (this.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n }\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n var resizeObserver = new ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n resizeObserver.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = 'image/png';\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.which === this._key) {\n return;\n } else {\n this._key = event.which;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.which !== 17) {\n value += 'ctrl+';\n }\n if (event.altKey && event.which !== 18) {\n value += 'alt+';\n }\n if (event.shiftKey && event.which !== 16) {\n value += 'shift+';\n }\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data']);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.one(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n",
"text/plain": "<IPython.core.display.Javascript object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<img src=\"data:image/png;base64,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TTMrzGvTV5/pfnolv2gRt969e8szzzwjevW7tBYmoHft2lWmT58up59+uujCedr2228/0T523XXXCutVqINAxw0BvRBGJz4noDshQzJFENCT4ezyKC6fkLnMLUu14YEsqRl9LvggOrus7OmyBwIFDRaJq7AVKxrQ9TnukSNHhqrj2muvlT//+c+RA7rueNdddxW/Em3MmDFywQUXlBnQS3sPus67b9++5gq8trJesaafhQ3our0+j3/SSSfJ1KlTTf8HHnigWd2+Xr16oViF3TjQcUNAD4s1le0J6KlgT2dQAno63F0a1eUTMpc4ZbkWPJBldYPPDR8EZ5XVLV32QJSgkVWd4pxXRQK6Pmutz1nromthmu6zePHiHa5YB72CrmNp8D322GPNsJdeeqmMHj06VEDXjdeuXWuu/utq7rqKu9ZU2gJ2UQK69q/H1/HHHy8zZswwtent/S+//LLUrl07DK5Q20Y5bljFPRTixDYmoCeGOv2BCOjpa5B2BS6fkKXNJi/j44G8KF3+PPEBPnDZA1GCBoqGJ1CRgF7yHecaknXhtvLawoULzZVqbRp69Xbwki1MQH/uuefkhBNOMLtfeOGF8te//jV0QNcd7rvvvuLV2/UW/JtvvnmHKUQN6NqR3o7fs2dPefXVV02/OucXX3xRatasGV6sAHtEOW4I6AHAprAJAT0F6GkNSUBPi7w747p8QuYOpWxXggeyrW/Q2eGDoKSyu53LHogSNLKrVHwzq0hAL3rOu0qVKvL5559v81700irW9403atRIfvzxRxk4cKCMGzcuckDX17zpYnHabrzxRrnmmmsiBfTNmzdL69atTf36DnR9nn37q+gVCeha1Jo1a+Soo46S119/3dR4zDHHmGfey1uYLqriUY4bAnpU2vHuR0CPl69TvRPQnZIjlWJcPiFLBUgOB8UDORS9lCnjA3zgsgeiBA0UDU8gakDfuHGjCdt6hVivfBfdxl2ogl69eoku2qaLu+mt5SWvJAe9gr5s2TLp0KGDWdVd25tvvint27ePFNB1p5LPs1933XXmtWslW0UDuva1evVq6d69u1nJXtuJJ54oU6ZMkapVqxZCFurzKMcNAT0U4sQ2JqAnhjr9gQjo6WuQdgUun5ClzSYv4+OBvChd/jzxAT5w2QNRggaKhicQNaA//PDDct5555kB77nnnuLbxAtV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\" width=\"500\">",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/b21087835d726439bbdf08b42e73470e"
},
"gist": {
"id": "b21087835d726439bbdf08b42e73470e",
"data": {
"description": "IK_FABRIK_AngleLimit",
"public": true
}
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.8.5",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"nteract": {
"version": "0.28.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment