{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "
"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"array([[ 0.99500417, -0.09983342],\n",
" [ 0.09983342, 0.99500417]])\n"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from pprint import pprint\n",
"\n",
"def draw_projcetion_line_points(x,y):\n",
" p0 = np.array([x,y])\n",
" p1 = np.dot(aa,p0)\n",
"\n",
" plt.plot(p0[0],p0[1],'o',color='r')\n",
" plt.plot(p1[0],p1[1],'o',color='b')\n",
" plt.plot([p0[0],p1[0]],[p0[1],p1[1]],\n",
" color='k', linestyle='-', linewidth=1)\n",
"\n",
"def draw_axes(x_min,x_max,y_min,y_max):\n",
" plt.hlines(0, x_min, x_max, color='k', linestyle='-',\n",
" linewidth=1)\n",
" plt.vlines(0, y_min, y_max, color='k', linestyle='-',\n",
" linewidth=1)\n",
"\n",
"# aa = np.array([[2,5], [4,1]])\n",
"t = 0.1\n",
"aa = np.array([[np.cos(t),-np.sin(t)], [np.sin(t),np.cos(t)]])\n",
"\n",
"pprint(aa)\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD8CAYAAAB+UHOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEuhJREFUeJzt3X+MZeV93/H3ZxdIumYrKwEDBmbGUreucNK01ojasdvg\nhCSA3FD/qkCjmra2R06DlUhxK6yJwlYtUqW0leraCpnIrnE7NXXVUCOzNoW0CUayG3ZdQsCYeoV2\nYDEOG6fBuxpsa9lv/7h32Nlldmdn75177t3n/ZJGc89znrnPo6N7z2fOec55TqoKSVJ7tnXdAUlS\nNwwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqPO67oDp3PRRRfVzMxM192QpImx\nb9++P6uqi8+k7lgHwMzMDHv37u26G5I0MZIsn2ldTwFJUqMMAElqlAEgSY0yACSpUQaAJDVqKAGQ\n5NNJXkjy+CnWX5PkxSSP9n9+cxjtSpLO3rAuA/0M8Angs6ep85WqeueQ2pMkDWgoRwBV9RDw58N4\nL0nSaIxyDOCnkzyW5EtJ3nSqSknmk+xNsvfQoUMj7J505nbv3t11F6SBZVgPhU8yA3yxqn5inXV/\nGThWVUeS3AD8u6ratdF7zs7OlncCaxwlYVjfHWmYkuyrqtkzqTuSI4Cq+l5VHem/3gOcn+SiUbQt\nSVrfSAIgyaVJ0n99db/d746ibUnS+oZyFVCSzwHXABclOQjcDpwPUFV3Au8FfjnJUeAl4Kby+FmS\nOjWUAKiqmzdY/wl6l4lKksaEdwJLUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUA\nSFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAk\nNcoAkKRGGQCS1CgDQJIaNZQASPLpJC8kefwU65Pk40n2J3ksyZuH0a40cktLMDPDywAzM71laUIN\n6wjgM8B1p1l/PbCr/zMP/PaQ2pWGrr+PZ9u2k/bxS0swPw/Ly70vzvJyb9kQ0IQ6bxhvUlUPJZk5\nTZUbgc9WVQFfS/LaJJdV1fPDaF8altV9/MoKQLG8vMKHPnSY73znCD/7b/4ph1dWOAz8FeCN0Ku4\nsABzc112WzorQwmAM3A58Oya5YP9slcFQJJ5ekcJTE1NjaRz0qqFhdWd/7eBK4ELeOmlndx2207e\ndPR5LgR2Ah+gHwAAzzzTSV+lQY0qAM5YVS0CiwCzs7PVcXfUmOP78suAH7D6FXn5ZXh0eqZ32udk\n/qOiCTWqq4Ceo/fv1Kor+mXSWDm+Lw9r/z+amgLuuAN27DjxD3bs6JVLE2hUAXAv8P7+1UBvAV70\n/L/G0Wn38XNzsLgI09McA5ie7i17/l8TaiingJJ8DrgGuCjJQeB24HyAqroT2APcAOwHVoB/NIx2\npWFb3ZcvLPROB01N9Xb+r+zj5+Zgbo7tCXXgQFfdlIYivQtzxtPs7Gzt3bu3625Ir5KEcf7uqF1J\n9lXV7JnU9U5gSWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQDoHnXJGU2mNsZsLSNJgTpzR9Pis\n1eBNyzqRRwDSOeb4jKZLwIvA8VmrpbUMAOkc05vRtICvAj/D6qzrzlqtkxkAGj1PUG+p3oymAf49\n8F7gbcC3mPqxI253ncAA0GiteawiVT5WcQscn9E0wG8AHwP+Dh/4i5vd7jqBAaDROn6CmsOrZZ6g\nHqo1s1aTwPT0h/i1nW/m4y9/kQfWVnS7N8/ZQDVa27ZBFb8H7Ab+D7AdenuqY8e67NmmTNxsoNu2\n8ZUq5oCvAxetlk/YdtfGnA1U42tqij8EPgx8hv7Ov1+uLTQ1xd8GvsmanX+/XO0yALTl1o75vv4v\n7uaX+FH+M/Dm1Qo+VnHr9QcGTnjYmdu9eQaAttSJY74HeP7F9/L97Z/iT3/8I6snqH2s4ii8emDA\n7S7HALS1ZmZ6O384BLwduBX4CNPTMMlPVJy4MQA1wzEAjY3jNx/9LvAe4CMnlUvqinMBaUtNTa0e\nAXzsVeWSuuURgLbUiTclBXDsURoXBoC2lGOP0vjyFJC23NycO3xpHA3lCCDJdUmeSrI/yW3rrL8m\nyYtJHu3//OYw2pUknb2BjwCSbAc+Cfw8cBB4JMm9VfWNk6p+pareOWh7kqThGMYRwNXA/qp6uqp+\nCNwN3DiE95UkbaFhBMDlwLNrlg/2y07200keS/KlJG8aQruSpAGMahD468BUVR1JcgPw34Fd61VM\nMg/MA0x5sbgkbZlhHAE8B1y5ZvmKftkrqup7VXWk/3oPcH6SEyYlXFN3sapmq2r24osvHkL3JEnr\nGUYAPALsSvKGJBcANwH3rq2Q5NIk6b++ut/ud4fQtiTpLA18Cqiqjia5Fbif3vTun66qJ5J8uL/+\nTnoPJv3lJEeBl4Cbypm0JKlTzgYqnQVnA9W4cjZQSdKGDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZ\nAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEg\nSY0yACRt2tISzMzAtm2930tLXfdIZ+O8rjsgabIsLcH8PKysHAPC8nKYn++tm5vrtGvaJI8AJG3K\nwgKsrABcCLwE9JYXFrrslc6GASBpU555ZvXVa4Aj65RrUhgAkjZlamr11U7g8DrlmhRDCYAk1yV5\nKsn+JLetsz5JPt5f/1iSNw+jXUmjd8cdsGMHrA2AHTt65ZosAwdAku3AJ4HrgauAm5NcdVK164Fd\n/Z954LcHbVcj5mUf6pubg8VbHuZHuAB4kentB1m85WEHgCfQMI4Argb2V9XTVfVD4G7gxpPq3Ah8\ntnq+Brw2yWVDaFujsHrZx/IyVPV+z88bAq1aWmLurl/kGvZyH9dw4OUrmbvrF/08TKBhBMDlwLNr\nlg/2yzZbR+Oqf9nHnwB/uFrmZR/t6n8edrJmCNjPw0Qau0HgJPNJ9ibZe+jQoa67M1Z2795NkpH/\nHFteBuCrwH9a059jy8ud9GccfoDO+9DVz+rn4Z3A9Bh8Hnbv3j2Kr985aRg3gj0HXLlm+Yp+2Wbr\nAFBVi8AiwOzsbA2hf+eM3bt3d/Nhn5mB5WUuZO01H7Btepo6cGD0/RkDSahq9OPZ/zzcclJxy5+H\nSTWMI4BHgF1J3pDkAuAm4N6T6twLvD89bwFerKrnh9C2RqF/2ccJF/152Ue7jl8GdJyfh4k0cABU\n1VHgVuB+4Eng81X1RJIPJ/lwv9oe4GlgP/C7wD8ZtF2N0NwcLC6y85JLeud8p6dhcdH7/lvV/zww\nPQ2Jn4cJNpS5gKpqD72d/NqyO9e8LuBXhtGWurHEHB/NX+M7fIgZvs4dgF/3hs3NucM/BzgZnDZ0\nfPKv3kmg1atAwX2ANMnG7iogjZ8TJ//qjQJ41Z80+QwAbej4JF+vAx5ap1zSJDIAtKHjk3ydB/zV\ndcolTSIDQBvyqj/p3GQAaENe9Sedm7wKSGfEq/6kc49HAJLUKANAkhplAEhSowwASWqUASBJjTIA\nJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktSogZ4I\nluTHgP8CzAAHgL9fVf9vnXoHgMPAy8DRqpodpF1J0uAGPQK4Dfj9qtoF/H5/+VTeUVV/w52/JI2H\nQQPgRuCu/uu7gL834PtJkkZk0AC4pKqe77/+DnDJKeoV8GCSfUnmB2xTkjQEG44BJHkQuHSdVQtr\nF6qqktQp3ubtVfVcktcBDyT5ZlU9dIr25oF5gKmpqY26J0k6SxsGQFVde6p1Sf40yWVV9XySy4AX\nTvEez/V/v5DkHuBqYN0AqKpFYBFgdnb2VIEiSRrQoKeA7gVu6b++BfjCyRWSvCbJztXXwC8Ajw/Y\nriRpQIMGwL8Cfj7Jt4Br+8skeX2SPf06lwAPJ/lj4I+A+6rqywO2K0ka0ED3AVTVd4GfW6f828AN\n/ddPAz81SDuSpOHzTmBJapQBIDVqaQlmZmDbtt7vpaWue6RRG+gUkKTJtLQE8/OwstJbXl7uLQPM\nzXXXL42WRwBSgxYWVnf+Hwf+I9BbXlg43V/pXOMRgNSgZ54BuBv4LeDhk8rVCo8ApAZdfPEDwK8C\ne4DpV8q9+b4tBoBGz9HHbvS3+76E7x+6kR85727gJ19ZvWMH3HFHd93T6BkAGq3V0cflZarq+Oij\nIbC1+tv9W8vL/F3grnqJT+WzTP/4ERKYnobFRQeAW5Oq8Z1uZ3Z2tvbu3dt1NzRMMzOwvMxB4H3A\nfwWugN4e6MCBDju2OUkY5+/Oq8zM8MPlZX4S+HX6sy3CxG13bSzJvjN97opHABqt/ijjFcB7gLcB\nT64p1xZ55hkuAL7Imp1/v1ztMgA0WmtGGT8K/AvgHcDune9xWGAr9bf7rlOUq00GgEbrjjt6o419\n7wfev/1a/vn3/oDl5S/isMAWOWm7A476ygDQiM3N9UYbp6dZHX38/GvvoXdy4oPAfwC8KWno1tnu\njvrKQWB1bts26H0Mn6I3LPwbQG8/dexYhx07jYkbBFYzHATWRDl+GvqNrO78TyyXtBUMAHXO09NS\nNwwAdc7T01I3nAxOY2Fuzh2+NGoeAUhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGDRQASd6X5Ikk\nx5Kc8tbjJNcleSrJ/iS3DdKmJGk4Bj0CeBx4N/DQqSok2Q58ErgeuAq4OclVA7YrdaP/WMWX4VXz\nVvukS02agW4Eq6onoTcx1mlcDeyvqqf7de8GbgS+MUjb0sitPs5yZaX3n9PqvNXAEnOrqzhplTe4\naWyN4k7gy4Fn1ywfBP7WCNqVhmthAVZW+DJwP3AYOLyywuEPfpD/WXfygx8c6Zc+Clz4ypTWBoDG\n1YYBkORB4NJ1Vi1U1ReG3aEk8/SfWjfldJAaJ/3HJ/4ocCWwE7gQ2Pn97/Ml/mW/ZCfwl07+E2ks\nbRgAVXXtgG08R+/7suqKftmp2lsEFqH3PIAB25aGZ2oKlpe5Brhmbfn0NNP8DMvL6/+JNK5GcRno\nI8CuJG9IcgFwE3DvCNqVhus081Y7pbUm0aCXgb4ryUHgrcB9Se7vl78+yR6AqjoK3ErvtOmTwOer\n6onBui11YM281cfghHmrndJak8hHQkpnwUdCalz5SEhJ0oYMAElqlAEgSY0yACSpUQaAJDXKAJCk\nRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqU\nASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaNVAAJHlfkieSHEsye5p6B5L8SZJHk+wdpE1J0nCc\nN+DfPw68G/idM6j7jqr6swHbkyQNyUABUFVPAiQZTm8kSSMzqjGAAh5Msi/J/IjalCSdxoZHAEke\nBC5dZ9VCVX3hDNt5e1U9l+R1wANJvllVD52ivXlgHmBqauoM314ardtvv73rLkgDS1UN/ibJHwAf\nraoNB3iT7AaOVNW/3qju7Oxs7d3rmLEknakk+6rqlBflrLXlp4CSvCbJztXXwC/QGzyWJHVo0MtA\n35XkIPBW4L4k9/fLX59kT7/aJcDDSf4Y+CPgvqr68iDtSpIGN+hVQPcA96xT/m3ghv7rp4GfGqQd\nSdLweSewJDXKAJCkRhkAktQoA0CSGmUASFKjhnIj2FZJcghY7roffRcBTmbndljlduhxO/SM03aY\nrqqLz6TiWAfAOEmy90zvrjuXuR163A49boeeSd0OngKSpEYZAJLUKAPgzC123YEx4XbocTv0uB16\nJnI7OAYgSY3yCECSGmUAbEKS30ryzSSPJbknyWu77lMXkrwvyRNJjiWZuCsfBpHkuiRPJdmf5Lau\n+9OVJJ9O8kKSZqd2T3Jlkv+V5Bv978Ovdt2nzTIANucB4Ceq6q8D/xf4WMf96crjwLuBdZ/qdq5K\nsh34JHA9cBVwc5Kruu1VZz4DXNd1Jzp2FPj1qroKeAvwK5P2eTAANqGq/kdVHe0vfg24osv+dKWq\nnqyqp7ruRweuBvZX1dNV9UPgbuDGjvvUif4jXf+86350qaqer6qv918fBp4ELu+2V5tjAJy9fwx8\nqetOaKQuB55ds3yQCfvCa2skmQH+JvC/u+3J5gz0QJhzUZIHgUvXWbVQVV/o11mgd/i3NMq+jdKZ\nbAdJkORC4L8Bv1ZV3+u6P5thAJykqq493fok/xB4J/BzdQ5fQ7vRdmjUc8CVa5av6JepUUnOp7fz\nX6qq3+u6P5vlKaBNSHId8M+AX6qqla77o5F7BNiV5A1JLgBuAu7tuE/qSJIAnwKerKp/23V/zoYB\nsDmfAHYCDyR5NMmdXXeoC0neleQg8FbgviT3d92nUehfAHArcD+9Ab/PV9UT3faqG0k+B3wVeGOS\ng0k+0HWfOvA24B8AP9vfHzya5IauO7UZ3gksSY3yCECSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1\nygCQpEYZAJLUqP8P56t5r44uV7YAAAAASUVORK5CYII=\n",
"text/plain": [
"