Skip to content

Instantly share code, notes, and snippets.

@dsaint31x
Last active July 11, 2023 06:14
Show Gist options
  • Save dsaint31x/7853330c85e783dba7825faaa7300d5b to your computer and use it in GitHub Desktop.
Save dsaint31x/7853330c85e783dba7825faaa7300d5b to your computer and use it in GitHub Desktop.
py_foot_of_perpendicular_line.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyPWVbSqQtQc4aZGkMD4Ksuq",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/dsaint31x/7853330c85e783dba7825faaa7300d5b/py_foot_of_perpendicular_line.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "UVtdr2A1m_iz",
"outputId": "7e273d53-2de0-427f-e689-db8c1aad6726"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Intersection point: (6.0, 3.0)\n",
"closet point: (4, 2)\n"
]
}
],
"source": [
"def find_intersection_pnt( segment_s, segment_e, pnt):\n",
"\n",
" # Calculate the direction vector of the line segment defined by segment_s and segment_e\n",
" line_segment_vector = (segment_e[0] - segment_s[0],\n",
" segment_e[1] - segment_s[1])\n",
"\n",
" # Calculate the direction vector of the perpendicular line\n",
" perpendicular_vector = (-line_segment_vector[1],\n",
" line_segment_vector[0])\n",
"\n",
" # Calculate the closest point on the line segment to the foot of the perpendicular line\n",
" # \\text{proj}_\\textbf{w}\\textbf{x}=\\dfrac{\\bf{x}\\cdot\\bf{w}}{\\|\\bf{w}\\|^2}\\bf{w}\n",
" projection = (pnt[0] - segment_s[0], pnt[1] - segment_s[1]) # set segment_s to origin\n",
" dot_product = projection[0] * line_segment_vector[0] + projection[1] * line_segment_vector[1]\n",
"\n",
" projection_length = dot_product / (line_segment_vector[0] ** 2 + line_segment_vector[1] ** 2)\n",
"\n",
" intersection_pnt = (segment_s[0] + line_segment_vector[0] * projection_length,\n",
" segment_s[1] + line_segment_vector[1] * projection_length)\n",
"\n",
" # Check if the intersection_point lies on the line segment\n",
" is_on_segment = (segment_s[0] <= intersection_pnt[0] <= segment_e[0] or\n",
" segment_s[0] >= intersection_pnt[0] >= segment_e[0]) and \\\n",
" (segment_s[1] <= intersection_pnt[1] <= segment_e[1] or\n",
" segment_s[1] >= intersection_pnt[1] >= segment_e[1])\n",
"\n",
" # Calculate the closest point\n",
" if is_on_segment:\n",
" closest_pnt = intersection_pnt\n",
" else:\n",
" # Choose the closest point between the foot of the perpendicular line and the endpoints of the segment\n",
" dist_start = (intersection_pnt[0] - segment_s[0]) ** 2 + (intersection_pnt[1] - segment_s[1]) ** 2\n",
" dist_end = (intersection_pnt[0] - segment_e[0]) ** 2 + (intersection_pnt[1] - segment_e[1]) ** 2\n",
" if dist_start < dist_end:\n",
" closest_pnt = segment_s\n",
" else:\n",
" closest_pnt = segment_e\n",
"\n",
" return intersection_pnt,closest_pnt\n",
"\n",
"# Test\n",
"segment_s = (0, 0)\n",
"segment_e = (4, 2)\n",
"pnt = (5, 5)\n",
"intersection,closet_pnt = find_intersection_pnt(segment_s, segment_e, pnt)\n",
"print(f\"Intersection point: {intersection}\")\n",
"print(f\"closet point: {closet_pnt}\")\n"
]
},
{
"cell_type": "code",
"source": [
"def ds_line(x_1, x_2 , color='black', linestyle='solid'):\n",
" plt.plot( (x_1[0], x_2[0]),(x_1[1], x_2[1]),color=color, linestyle= linestyle)\n",
"\n",
"def ds_pnt(x, marker='bo'):\n",
" plt.plot( (x[0]), (x[1]), marker)"
],
"metadata": {
"id": "OdFB8oVvsKvF"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"ds_line( segment_s,segment_e, color='green')\n",
"ds_line( closet_pnt,intersection, color='green', linestyle='dotted')\n",
"ds_line( pnt, intersection, color='red')\n",
"ds_pnt ( pnt ,'ro')\n",
"ds_pnt ( segment_s ,'go')\n",
"ds_pnt ( segment_e ,'go')\n",
"ds_pnt ( intersection ,'kx')\n",
"plt.text(*segment_e, f'e')\n",
"plt.text(*segment_s, f's')\n",
"plt.text(*pnt, f'pnt')\n",
"plt.title('example')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 470
},
"id": "lU8i7xOVpsyZ",
"outputId": "2cf6ae8f-8d4c-4879-b01f-4e77913edc62"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Text(0.5, 1.0, 'example')"
]
},
"metadata": {},
"execution_count": 36
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGzCAYAAABzfl4TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBjUlEQVR4nO3dd3RUZeLG8e+kB0hCrwlF6VUgQCIoKFjQH6KIKMpSRcQAgYllsYCIGtRNSECk2NBVBGm6FlBAmmtCNVIEKdJ7TUKAkMzc3x+zjEZAEpjkzkyezzlzuPNOezJ6yMO9772vxTAMAxEREREX8DE7gIiIiHgPFQsRERFxGRULERERcRkVCxEREXEZFQsRERFxGRULERERcRkVCxEREXEZFQsRERFxGRULERERcRkVCxHxCH379qVmzZpmxxCRq1CxEBEREZdRsRARERGXUbEQERERl1GxEPEiBw4coH///lSqVInAwEAaNWrEBx98AMC5c+eoX78+9evX59y5c87XnDx5kipVqnDzzTdjs9kA2LBhA3379uWGG24gKCiIypUr079/f06cOJHn815++WUsFgvbtm2jV69ehIWFUaFCBV566SUMw2Dfvn107dqV0NBQKleuTEJCQp7XL1u2DIvFwqxZs3j++eepXLkyJUuW5L777mPfvn1X/XntdjtJSUk0atSIoKAgKlWqxKBBgzh16tT1fpUico1ULES8xJEjR4iKimLx4sUMGTKE5ORkateuzYABA0hKSiI4OJiPPvqIHTt28MILLzhfFxMTQ3p6OtOnT8fX1xeARYsW8fvvv9OvXz8mTpzII488wsyZM7nnnnswDOOSz3744Yex2+2MGzeONm3a8Oqrr5KUlMQdd9xBtWrVeOONN6hduzZPP/00K1asuOT1r732Gt988w3PPfccw4YNY9GiRXTq1ClPAbqcQYMG8cwzz9C2bVuSk5Pp168fn376KXfddRc5OTnX+Y2KyDUxRMQrDBgwwKhSpYpx/PjxPOOPPPKIERYWZpw9e9YwDMMYOXKk4ePjY6xYscKYPXu2ARhJSUl5XnPxuX/22WefGYCxYsUK59jo0aMNwHjiiSecY7m5uUZ4eLhhsViMcePGOcdPnTplBAcHG3369HGOLV261ACMatWqGRkZGc7xzz//3ACM5ORk51ifPn2MGjVqOO+vXLnSAIxPP/00T86FCxdedlxEiob2WIh4AcMwmDt3Ll26dMEwDI4fP+683XXXXaSnp7N+/XrAcfiiUaNG9OnTh6eeeor27dszbNiwPO8XHBzs3D5//jzHjx8nKioKwPk+f/b44487t319fYmMjMQwDAYMGOAcL126NPXq1eP333+/5PW9e/cmJCTEeb979+5UqVKFb7/99oo/8+zZswkLC+OOO+7I8/O2bNmSUqVKsXTp0qt9bSJSCPzMDiAi1+/YsWOcPn2aadOmMW3atMs+5+jRowAEBATwwQcf0KpVK4KCgvjwww+xWCx5nnvy5EnGjBnDzJkzna+7KD09/ZL3rl69ep77YWFhBAUFUb58+UvG/zpPA6BOnTp57lssFmrXrs3u3bsv/wMD27dvJz09nYoVK1728b/mFpGioWIh4gXsdjsAvXr1ok+fPpd9TtOmTZ3b3333HeDYG7F9+3Zq1aqV57k9evTgp59+4plnnuGmm26iVKlS2O127r77budn/dnFuRlXGwMuO0fjWtjtdipWrMinn3562ccrVKjgks8RkYJRsRDxAhUqVCAkJASbzUanTp3+9rkbNmzglVdeoV+/fqSlpfH444+zceNGwsLCADh16hRLlixhzJgxjBo1yvm67du3F1r+v763YRjs2LEjTxn6qxtvvJHFixfTtm3bPIduRMRcmmMh4gV8fX158MEHmTt3Lps2bbrk8WPHjgGQk5ND3759qVq1KsnJyUyfPp0jR44wYsSIPO8Fl+5ZSEpKKrT8H3/8MZmZmc77c+bM4dChQ3Tu3PmKr+nRowc2m42xY8de8lhubi6nT58ujKgichXaYyHiJcaNG8fSpUtp06YNAwcOpGHDhpw8eZL169ezePFiTp48yauvvkpaWhpLliwhJCSEpk2bMmrUKF588UW6d+/OPffcQ2hoKLfeeitvvvkmOTk5VKtWje+//55du3YVWvayZcvSrl07+vXrx5EjR0hKSqJ27doMHDjwiq9p3749gwYNIj4+nrS0NO688078/f3Zvn07s2fPJjk5me7duxdaZhG5PBULES9RqVIlVq9ezSuvvMK8efN45513KFeuHI0aNeKNN95g/fr1vP766wwZMoTbbrvN+bp//vOffPnllwwcOJDNmzdTunRpZsyYwdChQ5k0aRKGYXDnnXeyYMECqlatWijZn3/+eTZs2EB8fDyZmZl0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li3QpAnYbLB0KXToYHaiQpXf398F2mPRsWNHNm7cSFpamvMWGRnJY489Rlpa2lVLhYiIiNdo0AAGDXJsx8WB3W5uHjfhV5Anh4SE0Lhx4zxjJUuWpFy5cpeMi4iIeL2XX4ZPPoH16x1/9u5tdiLT6cqbIiIi16pCBXj+ecf288/D2bPm5nEDBZpj4QqaYyEiIl7l/HmoXx/27IGxY+HFF81OVCgKZY6FiIiI/EVQEFy8BMO4cXD4sLl5TKZiISIicr0eeQRat4asLBg1yuw0plKxEBERuV4WCyQmOrbffx82bjQ3j4lULERERFyhbVvo3t1x2unTT5udxjQqFiIiIq4ybhz4+8P338PChWanMYWKhYiIiKvceCMMHerYfvppxyW/ixkVCxEREVd68UUoWxY2b4YPPjA7TZFTsRAREXGlMmX+ODPkpZcgM9PcPEVMxUJERMTVBg+G2rXh6FF44w2z0xQpFQsRERFXCwiAt95ybCckwL595uYpQioWIiIihaFrV7j1Vsclvy+uJ1IMqFiIiIgUBovFsbcCHCufrl1rbp4iomIhIiJSWCIjoVcvx3ZcHBTtup+mULEQEREpTK+/7liobMUK+PJLs9MUOhULERGRwhQRAVarY/vZZ+HCBXPzFDIVCxERkcL2z39CxYqwfTtMmWJ2mkKlYiEiIlLYQkJg7FjH9pgxcOqUuXkKkYqFiIhIUejfHxo1gpMn4dVXzU5TaFQsREREioKfH/zrX47tiRNh505z8xQSFQsREZGicvfdcOedkJPjmHfhhVQsREREitK//gU+PjBnDvz3v2ancTkVCxERkaLUpIljvgV45UWzVCxERESK2tixULIkrFoFs2aZncalVCxERESKWuXKf8yx+Oc/HQuVeQkVCxERETNYrVCtGuzZA8nJZqdxGRULERERM5Qo4VhHBBx/Hjtmbh4XUbEQERExS69e0KIFZGTAyy+bncYlVCxERETM4uMDCQmO7alTYcsWc/O4gIqFiIiImTp0gPvuA5vNsfqph1OxEBERMdubbzou+f311/DDD2anuS4qFiIiImarVw8GD3Zsx8U59l54KBULERERdzBqFISFQVoafPyx2WmumYqFiIiIOyhfHl580bH9wguQlWVunmukYiEiIuIuhg6FWrXg0KE/llj3MCoWIiIi7iIwEMaNc2y/+SYcPGhunmug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\n"
},
"metadata": {}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment