|
4 | 4 | "cell_type": "code",
|
5 | 5 | "execution_count": null,
|
6 | 6 | "metadata": {
|
7 |
| - "collapsed": false |
| 7 | + "collapsed": true |
8 | 8 | },
|
9 | 9 | "outputs": [],
|
10 | 10 | "source": [
|
|
17 | 17 | },
|
18 | 18 | {
|
19 | 19 | "cell_type": "markdown",
|
20 |
| - "metadata": { |
21 |
| - "collapsed": true |
22 |
| - }, |
| 20 | + "metadata": {}, |
23 | 21 | "source": [
|
24 | 22 | "# Simple sphere and text"
|
25 | 23 | ]
|
26 | 24 | },
|
27 | 25 | {
|
28 | 26 | "cell_type": "code",
|
29 | 27 | "execution_count": null,
|
30 |
| - "metadata": { |
31 |
| - "collapsed": false |
32 |
| - }, |
| 28 | + "metadata": {}, |
33 | 29 | "outputs": [],
|
34 | 30 | "source": [
|
35 | 31 | "ball = Mesh(geometry=SphereGeometry(radius=1), \n",
|
|
52 | 48 | "cell_type": "code",
|
53 | 49 | "execution_count": null,
|
54 | 50 | "metadata": {
|
55 |
| - "collapsed": false |
| 51 | + "collapsed": true |
56 | 52 | },
|
57 | 53 | "outputs": [],
|
58 | 54 | "source": [
|
|
63 | 59 | "cell_type": "code",
|
64 | 60 | "execution_count": null,
|
65 | 61 | "metadata": {
|
66 |
| - "collapsed": false |
| 62 | + "collapsed": true |
67 | 63 | },
|
68 | 64 | "outputs": [],
|
69 | 65 | "source": [
|
|
87 | 83 | "cell_type": "code",
|
88 | 84 | "execution_count": null,
|
89 | 85 | "metadata": {
|
90 |
| - "collapsed": false, |
91 | 86 | "scrolled": true
|
92 | 87 | },
|
93 | 88 | "outputs": [],
|
|
140 | 135 | "cell_type": "code",
|
141 | 136 | "execution_count": null,
|
142 | 137 | "metadata": {
|
143 |
| - "collapsed": false |
| 138 | + "collapsed": true |
144 | 139 | },
|
145 | 140 | "outputs": [],
|
146 | 141 | "source": [
|
|
159 | 154 | {
|
160 | 155 | "cell_type": "code",
|
161 | 156 | "execution_count": null,
|
162 |
| - "metadata": { |
163 |
| - "collapsed": false |
164 |
| - }, |
| 157 | + "metadata": {}, |
165 | 158 | "outputs": [],
|
166 | 159 | "source": [
|
167 | 160 | "import numpy as np\n",
|
|
207 | 200 | {
|
208 | 201 | "cell_type": "code",
|
209 | 202 | "execution_count": null,
|
210 |
| - "metadata": { |
211 |
| - "collapsed": false |
212 |
| - }, |
| 203 | + "metadata": {}, |
213 | 204 | "outputs": [],
|
214 | 205 | "source": [
|
215 | 206 | "# On windows, linewidth of the material has no effect\n",
|
|
226 | 217 | " type='LinePieces')\n",
|
227 | 218 | "scene = Scene(children=[lines, DirectionalLight(color='#ccaabb', position=[0,10,0]),AmbientLight(color='#cccccc')])\n",
|
228 | 219 | "c = PerspectiveCamera(position=[0, 10, 10])\n",
|
229 |
| - "renderer = Renderer(camera=c, scene = scene, controls=[OrbitControls(controlling=c)])\n", |
| 220 | + "renderer = Renderer(camera=c, background='black', background_opacity=1, scene = scene, controls=[OrbitControls(controlling=c)])\n", |
230 | 221 | "display(renderer)"
|
231 | 222 | ]
|
232 | 223 | },
|
|
245 | 236 | {
|
246 | 237 | "cell_type": "code",
|
247 | 238 | "execution_count": null,
|
248 |
| - "metadata": { |
249 |
| - "collapsed": false |
250 |
| - }, |
| 239 | + "metadata": {}, |
251 | 240 | "outputs": [],
|
252 | 241 | "source": [
|
253 | 242 | "f = \"\"\"\n",
|
|
276 | 265 | "display(renderer)"
|
277 | 266 | ]
|
278 | 267 | },
|
| 268 | + { |
| 269 | + "cell_type": "markdown", |
| 270 | + "metadata": {}, |
| 271 | + "source": [ |
| 272 | + "# Indexed Geometries\n", |
| 273 | + "\n", |
| 274 | + "The PlainGeometry lets you specify vertices and faces for a surface." |
| 275 | + ] |
| 276 | + }, |
| 277 | + { |
| 278 | + "cell_type": "code", |
| 279 | + "execution_count": null, |
| 280 | + "metadata": {}, |
| 281 | + "outputs": [], |
| 282 | + "source": [ |
| 283 | + "from pythreejs import *\n", |
| 284 | + "import numpy as np\n", |
| 285 | + "from IPython.display import display\n", |
| 286 | + "\n", |
| 287 | + "vertices = np.asarray([\n", |
| 288 | + "[0, 0, 0],\n", |
| 289 | + "[0, 0, 1],\n", |
| 290 | + "[0, 1, 0],\n", |
| 291 | + "[0, 1, 1],\n", |
| 292 | + "[1, 0, 0],\n", |
| 293 | + "[1, 0, 1],\n", |
| 294 | + "[1, 1, 0],\n", |
| 295 | + "[1, 1, 1]\n", |
| 296 | + "], dtype='float32')\n", |
| 297 | + "\n", |
| 298 | + "faces = np.asarray([\n", |
| 299 | + " [0, 1, 3],\n", |
| 300 | + " [0, 2, 3],\n", |
| 301 | + " [0, 2, 4],\n", |
| 302 | + " [2, 4, 6],\n", |
| 303 | + " [0, 1, 4],\n", |
| 304 | + " [1, 4, 5],\n", |
| 305 | + " [2, 3, 6],\n", |
| 306 | + " [3, 6, 7],\n", |
| 307 | + " [1, 3, 5],\n", |
| 308 | + " [3, 5, 7],\n", |
| 309 | + " [4, 5, 6],\n", |
| 310 | + " [5, 6, 7]\n", |
| 311 | + " ])\n", |
| 312 | + "\n", |
| 313 | + "vertexcolors = np.asarray([(0,0,0), (0,0,1), (0,1,0), (1,0,0), (0,1,1), (1,0,1), (1,1,0), (1,1,1)])\n", |
| 314 | + "facecolors = [[vertexcolors[i] for i in f] for f in faces]\n", |
| 315 | + "cubeGeometry = PlainGeometry(vertices=vertices, faces=faces, faceColors = facecolors)\n", |
| 316 | + "\n", |
| 317 | + "myobjectCube = Mesh(geometry=cubeGeometry, material = LambertMaterial(vertexColors = 'VertexColors'))\n", |
| 318 | + "cCube = PerspectiveCamera(position=[3, 3, 3], fov=20,\n", |
| 319 | + " children=[DirectionalLight(color='#ffffff', position=[-3, 5, 1], intensity=0.5)])\n", |
| 320 | + "sceneCube = Scene(children=[myobjectCube, AmbientLight(color='#dddddd')])\n", |
| 321 | + "\n", |
| 322 | + "rendererCube = Renderer(camera=cCube, background='black', background_opacity=1,\n", |
| 323 | + " scene = sceneCube, controls=[OrbitControls(controlling=cCube)])\n", |
| 324 | + "\n", |
| 325 | + "display(rendererCube)" |
| 326 | + ] |
| 327 | + }, |
| 328 | + { |
| 329 | + "cell_type": "markdown", |
| 330 | + "metadata": {}, |
| 331 | + "source": [ |
| 332 | + "# Buffer Geometries\n", |
| 333 | + "\n", |
| 334 | + "The PlainBufferGeometry object uses several tricks to speed up both the transfer of data and the rendering of the data." |
| 335 | + ] |
| 336 | + }, |
| 337 | + { |
| 338 | + "cell_type": "code", |
| 339 | + "execution_count": null, |
| 340 | + "metadata": {}, |
| 341 | + "outputs": [], |
| 342 | + "source": [ |
| 343 | + "from pythreejs import *\n", |
| 344 | + "import numpy as np\n", |
| 345 | + "from IPython.display import display\n", |
| 346 | + "\n", |
| 347 | + "vertices = np.asarray([\n", |
| 348 | + "[0, 0, 0],\n", |
| 349 | + "[0, 0, 1],\n", |
| 350 | + "[0, 1, 0],\n", |
| 351 | + "[0, 1, 1],\n", |
| 352 | + "[1, 0, 0],\n", |
| 353 | + "[1, 0, 1],\n", |
| 354 | + "[1, 1, 0],\n", |
| 355 | + "[1, 1, 1]\n", |
| 356 | + "], dtype='float32')\n", |
| 357 | + "\n", |
| 358 | + "faces = np.asarray([\n", |
| 359 | + " [0, 1, 3],\n", |
| 360 | + " [0, 2, 3],\n", |
| 361 | + " [0, 2, 4],\n", |
| 362 | + " [2, 4, 6],\n", |
| 363 | + " [0, 1, 4],\n", |
| 364 | + " [1, 4, 5],\n", |
| 365 | + " [2, 3, 6],\n", |
| 366 | + " [3, 6, 7],\n", |
| 367 | + " [1, 3, 5],\n", |
| 368 | + " [3, 5, 7],\n", |
| 369 | + " [4, 5, 6],\n", |
| 370 | + " [5, 6, 7]\n", |
| 371 | + " ])\n", |
| 372 | + "\n", |
| 373 | + "vertexcolors = np.asarray([(0,0,0), (0,0,1), (0,1,0), (1,0,0), (0,1,1), (1,0,1), (1,1,0), (1,1,1)])\n", |
| 374 | + "\n", |
| 375 | + "cubeGeometry = PlainBufferGeometry(vertices=vertices, faces=faces, colors = vertexcolors)\n", |
| 376 | + "\n", |
| 377 | + "myobjectCube = Mesh(geometry=cubeGeometry, material = LambertMaterial(vertexColors = 'VertexColors'))\n", |
| 378 | + "cCube = PerspectiveCamera(position=[3, 3, 3], fov=20,\n", |
| 379 | + " children=[DirectionalLight(color='#ffffff', position=[-3, 5, 1], intensity=0.5)])\n", |
| 380 | + "sceneCube = Scene(children=[myobjectCube, AmbientLight(color='#dddddd')])\n", |
| 381 | + "\n", |
| 382 | + "rendererCube = Renderer(camera=cCube, background='black', background_opacity=1,\n", |
| 383 | + " scene = sceneCube, controls=[OrbitControls(controlling=cCube)])\n", |
| 384 | + "\n", |
| 385 | + "display(rendererCube)" |
| 386 | + ] |
| 387 | + }, |
279 | 388 | {
|
280 | 389 | "cell_type": "markdown",
|
281 | 390 | "metadata": {},
|
|
292 | 401 | ],
|
293 | 402 | "metadata": {
|
294 | 403 | "kernelspec": {
|
295 |
| - "display_name": "Python [py27]", |
| 404 | + "display_name": "Python 3", |
296 | 405 | "language": "python",
|
297 |
| - "name": "Python [py27]" |
| 406 | + "name": "python3" |
298 | 407 | },
|
299 | 408 | "language_info": {
|
300 | 409 | "codemirror_mode": {
|
301 | 410 | "name": "ipython",
|
302 |
| - "version": 2 |
| 411 | + "version": 3 |
303 | 412 | },
|
304 | 413 | "file_extension": ".py",
|
305 | 414 | "mimetype": "text/x-python",
|
306 | 415 | "name": "python",
|
307 | 416 | "nbconvert_exporter": "python",
|
308 |
| - "pygments_lexer": "ipython2", |
309 |
| - "version": "2.7.12" |
| 417 | + "pygments_lexer": "ipython3", |
| 418 | + "version": "3.5.2" |
310 | 419 | }
|
311 | 420 | },
|
312 | 421 | "nbformat": 4,
|
|
0 commit comments