{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import math\n", "import matplotlib.pyplot as plt\n", "import matplotlib.animation as animation\n", "from scipy import interpolate\n", "from scipy.misc import derivative\n", "from scipy.optimize import newton\n", "g=9.81" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "\n", "# Positions du point initiale dans l'espace (x,y)\n", "# toujours définir hauter a 0 ! \n", "# Dimensions en m mais necessaire de resize dans inkscape arpes!\n", "A=np.array([0.,0.])\n", "# Positons du point final dans l'espace (x,y)\n", "B=np.array([0.5,-0.08])\n", "\n", "# Trajectoire linéaire\n", "def func1(x):\n", " a=(B[1]-A[1])/(B[0]-A[0])\n", " return(a*x+A[0])\n", "\n", "def dfunc1(x):\n", " a=(B[1]-A[1])/(B[0]-A[0])\n", " return(a)\n", "\n", "# trajectoire parabolique\n", "def func2(x):\n", " a=1.2\n", " c=A[1]\n", " b=(B[1]-A[1])/B[0]-a*B[0]\n", " return(a*x**2+b*x+c)\n", "\n", "def dfunc2(x):\n", " a=1.2\n", " b=(B[1]-A[1])/B[0]-a*B[0]\n", " return(2.*a*x+b)\n", "\n", "# Definition courbe optimal: Brachistochrone\n", "def find_theta_for_brach():\n", " def f(theta):\n", " return abs(-B[1]/B[0] - (1.-np.cos(theta))/(theta-np.sin(theta)))\n", " thetab=newton(f,np.pi/2.)\n", " return(thetab)\n", "\n", "def brach_(theta2,N=100):\n", " R = B[1] / (1 - np.cos(theta2))\n", " theta = np.linspace(0, theta2, N)\n", " x = R * (theta - np.sin(theta))\n", " y = R * (1 - np.cos(theta))\n", " return -x, y\n", "\n", "theta_b=find_theta_for_brach()\n", "xb,yb=brach_(theta_b,N=400)\n", "fbrach=interpolate.interp1d(xb,yb,kind='linear')\n", "def brach(x):\n", " if x<=B[0] and x>=A[0]:\n", " return(fbrach(x))\n", " else:\n", " if x>B[0]:\n", " return(B[0])\n", " else:\n", " return(A[0])\n", "brachv=np.vectorize(brach)\n", "\n", "def dbrach(x,step=0.0001):\n", " if x+step<=B[0] and x-step>=A[0]:\n", " return( (fbrach(x+step)-fbrach(x-step))/2./step)\n", " else:\n", " if x+step>B[0]:\n", " return((yb[-1]-fbrach(x-step))/step)\n", " else:\n", " return((fbrach(x+step)-yb[0])/step)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Trajectoire: decroissance exponnentielle\n", "def func3(x):\n", " return((B[1]-A[1])*(1.-np.exp(-x*40.))+A[1])\n", "\n", "def dfunc3(x,step=0.001):\n", " if x+step<=B[0] and x-step>=A[0]:\n", " return( (func3(x+step)-func3(x-step))/2./step)\n", " else:\n", " if x+step>B[0]:\n", " return((func3(x)-func3(x-step))/step)\n", " else:\n", " return((func3(x+step)-func3(x))/step)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def get_normals(xb,yb,length=-.1):\n", " xx=np.zeros(len(xb)-1)\n", " yy=np.zeros(len(yb)-1)\n", " for idx in range(len(xb)-1):\n", " x0, y0, xa, ya = xb[idx], yb[idx], xb[idx+1], yb[idx+1]\n", " dx, dy = xa-x0, ya-y0\n", " norm = math.hypot(dx, dy) * 1/length\n", " dx /= norm\n", " dy /= norm\n", " xx[idx]=x0-dy\n", " yy[idx]=y0+dx\n", " return(xx,yy)\n", "\n", "def get_courb(xb,yb,length=-.1):\n", " xbn,ybn=get_normals(xb,yb,length=length)\n", " xx=[]\n", " yy=[]\n", " for i in range (len(xbn)):\n", " #if ybn[i]<=(A[1]):\n", " if True:\n", " xx.append(xbn[i])\n", " yy.append(ybn[i])\n", " xx=np.array(xx)\n", " yy=np.array(yy)\n", " return(xx,yy)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABR20lEQVR4nO3dd3RU1d7G8e+kFwhJCARIQFqA0EukSceCNBVUFFCxoIKCevW1i3q99g4qIohwBfUKYkVA6dJ7D4QSIKEEAoH0Pu8fO5kkJKEopJ3ns9ZZyczsM3OGMueZfX57b5vdbrcjIiIiluVU2gcgIiIipUthQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELM6lNF88Ozub2ORYALxcvbDZbJftuS/384mIiFRUpRoG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+jRVq1YttE9uXcJtt93G888/77g/IyMDV12qlIugMHABY34fwyfrPyHQO5CtD28lsFIg6z5dx7xH5wEQNjqMG2/xxGlgfwgMhE2bHGsY2O129v/wAxvfeouslBRcfXwIe+EF6vbrpyFIIqWkvNYlACQlJRVYEXL37t2OdRwARo8ezaeffgpAQkIC/v7+1K9fv0AvQu7kSqpLkPwUBi4gJSOFDlM6sP3Edq5vcD3zhs3DyebEmo/XsOCJBWCHhtdexa373sL94B4YOBB++qnAV4j4Q4dY/cwznNq+HYBeU6ZQo1OnUnpHIlKc8l6XEBQURLt27QBYv3497du3L3a/J598kvfeew8wlypWr15N06ZNNV+CRSkMXIRdJ3cR9kUYKZkpvHPtO/zfNf8HwO6fdjNn2BwykjOo3qAydx5+E9+MWLPK4TPPFHiO7IwMdn35JbFbt9L9s88c/9myMzM1SZFIGVce6xLOt45DTEwMH3zwAU888QQAW7dupXXr1kDBdRxyexHatWvnWPdBKiaFgYs0eeNkHvztQVycXFh13yquDroagKMbj/LtgG9JPJaIt48Td8R/QbDtiJm6+MYbCz2P3W53BIH0+HjmDR5MUK9ehN5zj1Y/FCln/m5dQnBw4YBQ0nUJNpsN35yh0MuWLePee+8tch0HgLfeeotncr7gREVFMW3aNK3jUMEoDFwku93OkNlDmLVrFvX96rNh5Ab8PM3xno06y7f9vyVmWwxONjvd7Uvo4rMNp3VrTP9hMXZPn86md94BwObiQt1+/Qi97z58GzYskfckIldGea1LOHcdh9zt7bffpm/fvgDMmTOHwYMHO/bJv45DaGgod9xxB61atbryByuXlcLAJTiTeoY2k9pw8MxB+jfqz893/IyTzfwPTUtI49cHfmXn9zsBCCaKW4Z64j9zQrHPZ7fbiVmzhp2TJxOzdq3j/oDWral/yy3U7dsXFy+vK/umRKRElce6hPxWr17NpEmTCq3jkGvWrFnceuutACxevJg333yz0DoO1atXV11CGaMwcIk2HdvENVOvITUzlVd7vMq47uMcj9ntdrZ/s53fR88lLT4dVy9XbvjwBtqObHvBf/ix27YRPnUq0YsXY8/KwsnFhZuXLsUj38gE/ecRqbgqSl3CU089Rf369QF45513HJcX8vPz8yM0NJQPPviADh06AKaI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3+12O5nZmWRkZ5CZnVloS89KJzE9kaSMJBLTE83v6Xm/J6YnEp8Wf95v8kXxcfch2CeYoMpBBPkEUc+3njnx5wSAAK8Ay/SUiFwqhQGRcsjP0492ngXrEfJLyUjhaMJRjiQcMT/jj3As8RinUk5xKvlUgZ+nU06Tbc92nIjLEl8PX0dvRoBXgKMno5pXNYJ8ggiqHGQCgE8QldwqlfbhipRbCgMiFZCnq6f5Ruzf4IJts+3ZnE09y6mUU8SnxZOUnuT41p77e+439+SMZLLsWWRmZ5KVneX4tp97X2Z2Jk42pwK9B65OrgVvO7s6ehwquVVybPl7Ivw8/fD39MfFSR9RIiVB/9NELM7J5oSfpx9+nhraK2JVWg9TRETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELM6lNF88K8vu+P340bOleCQiIiIlL/+5L/85saSVahg4GRPv+P23DtNL8UhERERK18mYeOpc5V8qr63LBCIiIhZns9vtpdYvkZ6eyfYt0QBUC/TB2dlWWociIiJS4rKy7I5e8hatg3FzK50O+1INAyIiIlL6dJlARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELE5hQERExOIUBkRERCxOYUBERMTiFAZEREQsTmFARETE4hQGRERELO7/Ac9X16Nr3gW+AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xx=np.linspace(A[0],B[0],100)\n", "fig, ax = plt.subplots()\n", "\n", "# Plot la trajectoire du brachi\n", "ax.plot(xb,yb,'--',c='red')\n", "\n", "#Plot du support pour la trajectoire\n", "bot=-0.235\n", "R_bille=0.009\n", "pente_init=0.0\n", "thick=0.025\n", "L_t=B[0]-A[0]\n", "xbn,ybn=get_courb(xb,yb,length=-R_bille)\n", "ax.plot(xbn,ybn,c='green')\n", "ax.plot([-thick-np.abs(np.min(xbn)),-thick-np.abs(np.min(xbn))],[ybn[0],bot],c='green')\n", "ax.plot([-thick-np.abs(np.min(xbn)),np.min(xbn)],[pente_init,0.],c='green')\n", "Lg=-thick-np.abs(np.min(xbn))\n", "Ld=np.abs(np.max(xbn))+thick\n", "ax.plot([np.max(xbn),np.max(xbn)+thick],[ybn[-1],ybn[-1]],c='green')\n", "ax.plot([-thick-np.abs(np.min(xbn)),np.abs(np.max(xbn))+thick],[bot,bot],c='green')\n", "ax.plot([np.abs(np.max(xbn))+thick,np.abs(np.max(xbn))+thick],[bot,ybn[-1]],c='green')\n", "\n", "\n", "#Plot la trajectoire lineaire\n", "xL=np.linspace(A[0],B[0],1000)\n", "yL=func1(xL)\n", "ax.plot(xL,yL,'--',c='black')\n", "\n", "#Plot du support pour la trajectoire\n", "bot=-0.235\n", "R_bille=0.009\n", "pente_init=0.0\n", "thick=0.025\n", "L_t=B[0]-A[0]\n", "xbn,ybn=get_courb(xL,yL,length=-R_bille)\n", "ax.plot(xbn,ybn,c='blue')\n", "ax.plot([Lg,Lg],[ybn[0],bot],c='blue')\n", "ax.plot([Lg,np.min(xbn)],[ybn[0],ybn[0]],c='blue')\n", "ax.plot([np.max(xbn),Ld],[ybn[-1],ybn[-1]],c='blue')\n", "ax.plot([Lg,Ld],[bot,bot],c='blue')\n", "ax.plot([Ld,Ld],[bot,ybn[-1]],c='blue')\n", "ax.axis('equal')\n", "ax.axis('off')\n", "\n", "#Plot la trajectoire exponentielle\n", "xL=np.linspace(A[0],B[0],100)\n", "yL=func3(xL)\n", "ax.plot(xL,yL,'--',c='brown')\n", "\n", "bot=-0.235\n", "R_bille=0.009\n", "pente_init=0.0\n", "thick=0.025\n", "L_t=B[0]-A[0]\n", "xbn,ybn=get_courb(xL,yL,length=-R_bille)\n", "ax.plot(xbn,ybn,c='purple')\n", "ax.plot([Lg,Lg],[ybn[0],bot],c='purple')\n", "ax.plot([Lg,np.min(xbn)],[ybn[0],ybn[0]],c='purple')\n", "ax.plot([np.max(xbn),Ld],[ybn[-1],ybn[-1]],c='purple')\n", "ax.plot([Lg,Ld],[bot,bot],c='purple')\n", "ax.plot([Ld,Ld],[bot,ybn[-1]],c='purple')\n", "ax.axis('equal')\n", "ax.axis('off')\n", "# Enregistre toutes les trajectoires. Plus partique pour l'utilisation utltérieure dans inkscape.\n", "fig.savefig('brach_brahc.svg',format='svg')\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Une fois les figures enregistrés, les ouvrir avec inkscape.\n", "\n", "Redimensionner dans inkscape en fonction des tailles souhaitées.\n", "\n", "Placer les découpes nécessaires à l'assemblage: trous pour vis, entaille pour support etc.. Voir fichier \"Exemple_trajectoires.svg\"\n", "\n", "Ouvrir les trajectoires dans différents documents inkscape. Supprimer les trajectoires en pointillés. Et mettre les découpes en rouge: rgb=(255,0,0)\n", "\n", "Les supports sont prets pour découpe laser." ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Enregistre le Brahc au format svg\n", "\n", "xx=np.linspace(A[0],B[0],100)\n", "fig, ax = plt.subplots()\n", "ax.plot(xb,yb,'--',c='red')\n", "bot=-0.235\n", "R_bille=0.009\n", "pente_init=0.0\n", "thick=0.025\n", "L_t=B[0]-A[0]\n", "xbn,ybn=get_courb(xb,yb,length=-R_bille)\n", "ax.plot(xbn,ybn,c='green')\n", "ax.plot([-thick-np.abs(np.min(xbn)),-thick-np.abs(np.min(xbn))],[ybn[0],bot],c='green')\n", "ax.plot([-thick-np.abs(np.min(xbn)),np.min(xbn)],[pente_init,0.],c='green')\n", "Lg=-thick-np.abs(np.min(xbn))\n", "Ld=np.abs(np.max(xbn))+thick\n", "ax.plot([np.max(xbn),np.max(xbn)+thick],[ybn[-1],ybn[-1]],c='green')\n", "ax.plot([-thick-np.abs(np.min(xbn)),np.abs(np.max(xbn))+thick],[bot,bot],c='green')\n", "ax.plot([np.abs(np.max(xbn))+thick,np.abs(np.max(xbn))+thick],[bot,ybn[-1]],c='green')\n", "\n", "ax.axis('equal')\n", "ax.axis('off')\n", "\n", "fig.savefig('brach.svg',format='svg')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcWUlEQVR4nO3de3TU9Z3/8ddccyUXCBBCApSLBuQuIlLFRdZVbL2xePCyurS1uyp6dGtbD91jj+2uuv2JS6vdXtTVdt1jXbuK/rAoXqiKIsitRGi43wKBQEKuk8tkZr77x4QhYTJRC8xg3s/HOXMyM993Zj6BwDzznW9mXI7jOAIAAGa5U70AAACQWsQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhHDAAAYBwxAACAccQAAADGEQMAABhnJgZaa2q07pFH9M7f/70cx0n1cgAAOGt4U3nnkUhEzdXNkiRfpk8ul+vUbi8c0f6V+xWoCmjiNyZ2uT1Perp2/e//KtzWptqtW9V39OhTui8AAHqLlMZAc3WzHh/4+Bm57dI5pcrIy4hd9mVlqejSS1Xx1lva94c/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Enregistre la courbe expo\n", "xL=np.linspace(A[0],B[0],100)\n", "fig, ax = plt.subplots()\n", "yL=func3(xL)\n", "ax.plot(xL,yL,'--',c='brown')\n", "\n", "bot=-0.235\n", "R_bille=0.009\n", "pente_init=0.0\n", "thick=0.025\n", "L_t=B[0]-A[0]\n", "xbn,ybn=get_courb(xL,yL,length=-R_bille)\n", "ax.plot(xbn,ybn,c='purple')\n", "ax.plot([Lg,Lg],[ybn[0],bot],c='purple')\n", "ax.plot([Lg,np.min(xbn)],[ybn[0],ybn[0]],c='purple')\n", "ax.plot([np.max(xbn),Ld],[ybn[-1],ybn[-1]],c='purple')\n", "ax.plot([Lg,Ld],[bot,bot],c='purple')\n", "ax.plot([Ld,Ld],[bot,ybn[-1]],c='purple')\n", "\n", "ax.axis('equal')\n", "ax.axis('off')\n", "fig.savefig('expo.svg',format='svg')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Enregistre la courbe lineaire\n", "xL=np.linspace(A[0],B[0],1000)\n", "yL=func1(xL)\n", "fig, ax = plt.subplots()\n", "ax.plot(xL,yL,'--',c='black')\n", "\n", "bot=-0.235\n", "R_bille=0.009\n", "pente_init=0.0\n", "thick=0.025\n", "L_t=B[0]-A[0]\n", "xbn,ybn=get_courb(xL,yL,length=-R_bille)\n", "ax.plot(xbn,ybn,c='blue')\n", "ax.plot([Lg,Lg],[ybn[0],bot],c='blue')\n", "ax.plot([Lg,np.min(xbn)],[ybn[0],ybn[0]],c='blue')\n", "ax.plot([np.max(xbn),Ld],[ybn[-1],ybn[-1]],c='blue')\n", "ax.plot([Lg,Ld],[bot,bot],c='blue')\n", "ax.plot([Ld,Ld],[bot,ybn[-1]],c='blue')\n", "ax.axis('equal')\n", "ax.axis('off')\n", "plt.fig.savefig('lin.svg',format='svg')" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Ci après: résolution numérique des equations du mouvement pour trajectoires quelconques" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def solver_inv(func,dfunc):\n", " dt=0.01\n", " Y=[B[1]]\n", " X=[B[0]]\n", " T=[0]\n", " while Y[-1]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", "pad_title=10\n", "size_title=10\n", "dl=0.2\n", "ax.set_xlim(A[0]-0.1,B[0]+0.1)\n", "ax.set_ylim(B[1]-dl,A[1]+0.1)\n", "ax.set_xlabel('x [m]',fontsize=size_title)\n", "ax.set_ylabel('y [m]',fontsize=size_title)\n", "ax.plot(A[0],A[1],c='black')\n", "ax.plot(B[0],B[1],c='black')\n", "xx=np.linspace(A[0],B[0],100)\n", "f1=func1(xx)\n", "f2=func3(xx)\n", "def animate(i):\n", " ax.clear()\n", " ax.set_xlim(A[0]-0.1,B[0]+0.1)\n", " ax.set_ylim(B[1]-dl,A[1]+0.1)\n", " ax.set_xlabel('x [m]',fontsize=size_title)\n", " ax.set_ylabel('y [m]',fontsize=size_title)\n", " ax.set_title(r'T= '+str(int(T[i]*100)/100)+' [s]')\n", " ax.plot(A[0],A[1],c='black')\n", " ax.plot(B[0],B[1],c='black')\n", " ax.plot(xx,f1,'-',lw=0.8,color='black')\n", " ax.plot(xx,f2,'-',lw=0.8,color='black')\n", " ax.plot(xb,yb,'-',lw=0.8,color='black')\n", " props = dict(boxstyle='round', facecolor='None')\n", " ax.text(B[0]-0.2, A[1]-thick, 'T= '+str(int(T[N_1-1]*100)/100)+' [s]',c=\"red\" ,fontsize=10, bbox=props)\n", " ax.text(B[0]-0.2, A[1]-0.15, 'T= '+str(int(T[N_2-1]*100)/100)+' [s]',c=\"blue\" ,fontsize=10, bbox=props)\n", " ax.text(B[0]-0.2, A[1]-0.25, 'T= '+str(int(T[N_3-1]*100)/100)+' [s]',c=\"green\" ,fontsize=10, bbox=props)\n", " if i