{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%gui qt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n# Text in a Scene and ViewBox\n\nDemonstrate the use of text in the root scene and a viewbox. Note\nhow the point size is independent of scaling of viewbox and canvas.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import sys\nimport numpy as np\n\nfrom vispy import scene\nfrom vispy.scene.visuals import Text\n\n# Create canvas with a viewbox at the lower half\ncanvas = scene.SceneCanvas(keys='interactive')\nvb = scene.widgets.ViewBox(parent=canvas.scene, border_color='b')\nvb.camera = scene.TurntableCamera(elevation=30, azimuth=30, up='+z')\naxis = scene.visuals.XYZAxis(parent=vb.scene)\nvb.camera.rect = 0, 0, 1, 1\n\n\n@canvas.events.resize.connect\ndef resize(event=None):\n vb.pos = 1, canvas.size[1] // 2 - 1\n vb.size = canvas.size[0] - 2, canvas.size[1] // 2 - 2\n\n\nt1 = Text('Text in root scene (24 pt)', parent=canvas.scene, color='red')\nt1.font_size = 24\nt1.pos = canvas.size[0] // 2, canvas.size[1] // 3\n\nt2 = Text('Text in viewbox (18 pt)', parent=vb.scene, color='green',\n rotation=30)\nt2.font_size = 18\nt2.pos = 0.5, 0.3\n\n# Add a line so you can see translate/scale of camera\nN = 1000\nlinedata = np.empty((N, 2), np.float32)\nlinedata[:, 0] = np.linspace(0, 1, N)\nlinedata[:, 1] = np.random.uniform(0.5, 0.1, (N,))\nscene.visuals.Line(pos=linedata, color='#f006', method='gl', parent=vb.scene)\n\nif __name__ == '__main__':\n canvas.show()\n if sys.flags.interactive != 1:\n canvas.app.run()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.19" } }, "nbformat": 4, "nbformat_minor": 0 }