{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "In this code example, we'll create splines in 2D and 3D." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n", "Initializing flashlight v0.0.1\n" ] } ], "source": [ "%pylab inline\n", "from pylab import *\n", "\n", "import mpl_toolkits.mplot3d\n", "\n", "import path_utils\n", "path_utils.add_relative_to_current_source_file_path_to_sys_path(\"../../lib\")\n", "\n", "import flashlight.spline_utils as spline_utils" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As in the previous example, we specify our spline in terms of keyframe values (the `p` values) at particular parameter values (the `t` values). We need to specify an array of `t` values for each dimension, because we solve for our spline coefficients separately for each dimension. So our `T` array is now a 2D array. Our `P` array is also now 2D array, where each row is a 2D point, and each column is a dimension. This convention seems to be the most common in Python libraries we use (e.g., scikit-learn) so we adopt it throughout flashlight. We also adopt the convention in flashlight that `x` is the right-most coordinate. So we make `y` the 0th column, and `x` the 1st column." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T = \n", "[[0 0]\n", " [1 1]\n", " [2 2]\n", " [3 3]]\n", "\n", "P = \n", "[[0 0]\n", " [4 9]\n", " [7 1]\n", " [9 4]]\n" ] } ], "source": [ "T_y = matrix([0,1,2,3]).T.A\n", "T_x = matrix([0,1,2,3]).T.A\n", "T = c_[T_y, T_x]\n", "P_y = matrix([0,4,7,9]).T.A\n", "P_x = matrix([0,9,1,4]).T.A\n", "P = c_[P_y, P_x]\n", "\n", "print \"T = \"; print T; print; print \"P = \"; print P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We compute our spline coefficients, and evalute the resulting spline, exactly as in the previous example." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "C, T, sd = \\\n", " spline_utils.compute_minimum_variation_nonlocal_interpolating_b_spline_coefficients(\n", " P, T, degree=7, lamb=[0,0,0,1,0])\n", " \n", "P_eval, T_eval, dT = \\\n", " spline_utils.evaluate_minimum_variation_nonlocal_interpolating_b_spline(\n", " C, T, sd, num_samples=100)\n", "\n", "t = T_eval[:,0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point, we are ready to plot the spline. We use color to represent the `t` value of each point on the spline, and we plot the keyframes with larger dots. For 2D plots, matplotlib adopts the convention of passing in the `x` coordinate in first, followed by the `y` coordinate. So we pass in `P_eval[:,1]` first because this is the `x` coordinate according to the flashlight convention. Then we pass in `P_eval[:,0]` because this is the `y` coordinate according to the flashlight convention." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(4,4);\n", "scatter(P_eval[:,1], P_eval[:,0], c=t, s=50);\n", "scatter(P[:,1], P[:,0], c=T[:,0], s=200, alpha=0.5);\n", "gca().set_aspect(\"equal\")\n", "title(\"$\\\\mathbf{p}(t)$\\n\", fontsize=20);\n", "ylabel(\"$\\\\mathbf{p}_y$\", rotation=\"horizontal\", fontsize=20); xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just as we did in 2D, we can compute splines in 3D." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "T_z = matrix([0,1,2,3]).T.A\n", "T_y = matrix([0,1,2,3]).T.A\n", "T_x = matrix([0,1,2,3]).T.A\n", "T = c_[T_z, T_y, T_x] \n", "P_z = matrix([0,0,1,2]).T.A\n", "P_y = matrix([0,4,7,9]).T.A\n", "P_x = matrix([0,9,1,4]).T.A\n", "P = c_[P_z, P_y, P_x]\n", "\n", "C, T, sd = \\\n", " spline_utils.compute_minimum_variation_nonlocal_interpolating_b_spline_coefficients(\n", " P, T, degree=7, lamb=[0,0,0,1,0])\n", " \n", "P_eval, T_eval, dT = \\\n", " spline_utils.evaluate_minimum_variation_nonlocal_interpolating_b_spline(\n", " C, T, sd,num_samples=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For 3D plots, matplotlib adopts the convention of passing in the `x` coordinate in first, followed by the `y` coordinate, followed by the `z` coordinate, and assumes that `z` is up. In flashlight, we adopt the convention that `y` is up. In contrast to the matplotlib convention, the flashlight convention has the advantage that 2D examples (where `y` is obviously up) can be more easily extended to 3D without permuting the coordinates. Because of this difference in conventions, we pass in `P_eval[:,1]` as the last coordinate to matplotlib." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nEDn0F0jSaEpxz6zGAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(6,6);\n", "fig = plt.figure(); ax = fig.add_subplot(111, projection=\"3d\");\n", "ax.scatter(P_eval[:,2], P_eval[:,0], P_eval[:,1], c=t, s=50);\n", "ax.scatter(P[:,2], P[:,0], P[:,1], c=T[:,0], s=200, alpha=0.5);\n", "title(\"$\\\\mathbf{p}(t)$\\n\", fontsize=20);\n", "ax.set_zlabel(\"$\\\\mathbf{p}_y$\", fontsize=20);\n", "xlabel(\"$\\\\mathbf{p}_x$\", fontsize=20); ylabel(\"$\\\\mathbf{p}_z$\", fontsize=20);" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }