{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "require.undef(\"nbextensions/vpython_libraries/glow.min\");" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "require.undef(\"nbextensions/vpython_libraries/glowcomm\");" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "require.undef(\"nbextensions/vpython_libraries/jquery-ui.custom.min\");" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "require([\"nbextensions/vpython_libraries/glow.min\"], function(){console.log(\"GLOW LOADED\");})" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "require([\"nbextensions/vpython_libraries/glowcomm\"], function(){console.log(\"GLOWCOMM LOADED\");})" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "require([\"nbextensions/vpython_libraries/jquery-ui.custom.min\"], function(){console.log(\"JQUERY LOADED\");})" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "window.__context = { glowscript_container: $(\"#glowscript\").removeAttr(\"id\")}" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from vpython import *\n", "scene.width = scene.height = 500\n", "scene.background = color.gray(0.8)\n", "scene.range = 2.2\n", "scene.caption = \"Click to pick an object and make it red.\"\n", "scene.append_to_caption(\"\\nNote picking of individual curve segments.\")\n", "box(pos=vector(-1,0,0), color=color.cyan, opacity=1)\n", "box(pos=vector(1,-1,0), color=color.green)\n", "arrow(pos=vector(-1,-1.3,0), color=color.orange)\n", "cone(pos=vector(2,0,0), axis=vector(0,1,-.3), color=color.blue, size=vector(2,1,1))\n", "sphere(pos=vector(-1.5,1.5,0), color=color.white, size=.4*vector(3,2,1))\n", "square = curve(color=color.yellow, radius=.05)\n", "square.append(vector(0,0,0))\n", "square.append(pos=vector(0,1,0), color=color.cyan, radius=.1)\n", "square.append(vector(1,1,0))\n", "square.append(pos=vector(1,0,0), radius=.1)\n", "square.append(vector(0.3,-.3,0))\n", "v0 = vertex(pos=vector(-.5,1.2,0), color=color.green)\n", "v1 = vertex(pos=vector(1,1.2,0), color=color.red)\n", "v2 = vertex(pos=vector(1,2,0), color=color.blue)\n", "v3 = vertex(pos=vector(-.5,2,0), color=color.yellow)\n", "quad(vs=[v0, v1, v2, v3])\n", "ring(pos=vector(-0.6,-1.3,0), size=vector(0.2,1,1), color=color.green)\n", "extrusion(path=[vector(-1.8,-1.3,0), vector(-1.4,-1.3,0)],\n", " shape=shapes.circle(radius=.5, thickness=0.4), color=color.yellow)\n", "\n", "lasthit = None\n", "lastpick = None\n", "lastcolor = None\n", "\n", "def getevent():\n", " global lasthit, lastpick, lastcolor\n", " if lasthit != None:\n", " if lastpick != None: lasthit.modify(lastpick, color=lastcolor)\n", " else: lasthit.color = vector(lastcolor)\n", " lasthit = lastpick = None\n", " \n", " hit = scene.mouse.pick\n", " if hit != None:\n", " lasthit = hit\n", " lastpick = None\n", " if isinstance(hit, curve): # pick individual point of curve\n", " lastpick = hit.segment\n", " lastcolor = hit.point(lastpick)['color']\n", " hit.modify(lastpick, color=color.red)\n", " elif isinstance(hit, quad):\n", " lasthit = hit.v0\n", " lastcolor = vector(lasthit.color) # make a copy\n", " lasthit.color = color.red\n", " else:\n", " lastcolor = vector(hit.color) # make a copy\n", " hit.color = color.red\n", "\n", "scene.bind(\"mousedown\", getevent)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "VPython", "language": "python", "name": "vpython" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }