Files
wiki/bvh-min-dist/bvh.ipynb
2024-07-20 02:48:50 +09:00

131 lines
79 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x183ffb9aed0>]"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAzkAAANECAYAAACTruEGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAADfPElEQVR4nOzde1xUZf4H8M8wMiD3q4qC4i0DNdMkE8OgvIW24Mhaaq1uZbXZJt1zd0uztrbr6mb1Kyu1TNeC8ZKZlwqTwlpJKzAyNVDAUQGRi8htOL8/jjMyMMOcgZk5M8Pn/Xr5Us6cOefLQDQfnuf5PgpBEAQQERERERG5CQ+5CyAiIiIiIrIlhhwiIiIiInIrDDlERERERORWGHKIiIiIiMitMOQQEREREZFbYcghIiIiIiK3wpBDRERERERuhSGHiIiIiIjcCkMOERERERG5FYYcInILCoUCy5YtM3y8du1aKBQKFBUVyVaTrezduxcKhQJ79+6VuxSHiI6OxoIFC+Quo1OWLVsGhUKB8vJyuUsxSExMRGJiotxltKujqKgICoUCa9eudWgdct2XiByLIYeIDIGg9Z9evXohKSkJn3/+udzluZSrrroK/fv3hyAIZs+ZMGECevfujebmZgdWJg/991Zubq7JxxMTEzFixAgHV+W6zp49ix49euD22283e05NTQ169uwJtVrtwMqcz4YNG7BixQq5yyAimfSQuwAich7Lly/HwIEDIQgCzpw5g7Vr1yI5ORmffvopZsyYIXd5Vrnjjjtw2223wcvLy6H3nTdvHp588klkZ2dj4sSJ7R4vKirC/v378cADD6BHD/4INuXIkSPw8ODv4Ezp1asXJk+ejK1bt6Kurg4+Pj7tztFoNKivrzcEod27dzu6TEkGDBiAixcvwtPT0y7X37BhA/Lz85Genu7Q+xKRc+D/RYjI4Oabb8btt9+OO+64A48++iiys7Ph6emJjRs3yl2a1ZRKJby9vaFQKBx637lz50KhUGDDhg0mH9+4cSMEQcC8efMcWpcr8fLystkb0ObmZjQ2Nsp+DVuaN28eamtrsW3bNpOPb9iwAYGBgZg+fToAQKVSQaVSObJESRQKBby9vaFUKrvFfYnIsRhyiMisoKAg9OzZs92Iw4ULF/DII48gKioKXl5eGDZsGF555RWjKVodzXtvu35Gv47h2LFjWLBgAYKCghAYGIg///nPqKurM3puQ0MDHnroIYSHh8Pf3x9/+MMfUFJS0u4eptbkREdHY8aMGfjmm29w7bXXwtvbG4MGDcIHH3zQ7vk///wzbrjhBvTs2RORkZF47rnnsGbNGovrfKKiojBx4kRkZGSgqamp3eMbNmzA4MGDMW7cOADAoUOHcPPNNyMgIAB+fn646aab8N1335m9fuvPxdS6lbbrHvTreT7++GM888wz6NevH/z9/ZGWloaqqio0NDQgPT0dvXr1gp+fH/785z+joaGh3XXXr1+Pa665Bj179kRISAhuu+02FBcXW6yzM0x9bufPn0d6errhe27IkCF48cUX0dLSYjhH/z33yiuvYMWKFRg8eDC8vLzwyy+/oLGxEU8//TSuueYaBAYGwtfXFwkJCcjKyjK6T0fXAIBff/0Vs2fPRnh4OHr27Ilhw4bh73//e7vP4fz58x1+L99www0YNWqUyc9/2LBhmDp1qtnXZ+bMmfD19TUZpM+ePYsvv/wSaWlphlFMU2tyXn/9dQwfPhw+Pj4IDg7G2LFjja63YMECREdHt7u+/r/V1tasWYMbb7wRvXr1gpeXF2JjY/HWW2+ZrV+v7c8I/feqqT+ta9m6dSumT5+Ovn37wsvLC4MHD8azzz4LnU5nOCcxMRGfffYZTpw40e4a5n42ffXVV0hISICvry+CgoKQkpKCgoICk5+/lJ9VRCQvzpUgIoOqqiqUl5dDEAScPXsWr7/+Ompra43m/wuCgD/84Q/IysrCXXfdhauvvhq7du3CY489htLSUvz73//u9P1nz56NgQMH4oUXXsDBgwfx7rvvolevXnjxxRcN59x9991Yv3495s6di/j4eHz11VeG31hLcezYMaSlpeGuu+7C/Pnz8f7772PBggW45pprMHz4cABAaWkpkpKSoFAosGTJEvj6+uLdd9+VPPVt3rx5uOeee7Br1y6jaX55eXnIz8/H008/DQA4fPgwEhISEBAQgMcffxyenp54++23kZiYiK+//toQhGzhhRdeQM+ePfHkk0/i2LFjeP311+Hp6QkPDw9UVlZi2bJl+O6777B27VoMHDjQUCMA/POf/8RTTz2F2bNn4+6770ZZWRlef/11TJw4EYcOHUJQUJDF++u/t9oyFQTbqqurww033IDS0lLce++96N+/P3JycrBkyRJotdp26y7W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//79kmoIDw/HxIkT8f777+PkyZNGj3Xlt/d33HEHKisrce+997brZCjFvHnzcOjQISxduhQKhUJSd7S2XzOVSoXY2FgIgmCYxjd48GBUVVXh559/Npyn1WqxefNmo+eael2rqqqwZs0aqz4Pvfvuuw+//fYbNm/ebPhFiaX7NTY2mvy54uvrK2n6WkREBK6++mqsW7fOKNjl5+dj9+7dSE5O7sRnQkRy40gOERl8/vnnhhGZs2fPYsOGDTh69CiefPJJwxvuW265BUlJSfj73/+OoqIijBo1Crt378bWrVuRnp5utF7m7rvvxr/+9S/cfffdGDt2LPbt24fffvut0/VdffXVmDNnDt58801UVVUhPj4eX375pVUjLFI8/vjjWL9+PSZPnoy//vWvhhbS/fv3x7lz5yT/hviGG25AZGQktm7dip49e0KtVhs9/txzz2HPnj24/vrrcf/996NHjx54++230dDQgJdeeqnDa999993IyMjAtGnTMHv2bBw/fhzr169vt16pqwYPHoznnnsOS5YsQVFREVJTU+Hv74/CwkJs3rwZ99xzDx599FGb3rOtxx57DNu2bcOMGTMM7b4vXLiAvLw8ZGRkoKioCGFhYR1eY8aMGdBoNJg5cyamT5+OwsJC/N///R9iY2MNo5SW/Oc//8H111+PMWPG4J577sHAgQNRVFSEzz77zCgQW2P06NEYMWIEPvnkE8TExGDMmDFWPf/222/H8uXLsXXrVkyYMMHk3jZtTZkyBX369MGECRPQu3dvFBQUYNWqVZg+fbphdPa2227DE088gZkzZ+LBBx9EXV0d3nrrLVxxxRVGjRqmTJkClUqFW265xRDUVq9ejV69ekGr1Vr1uXz22Wf44IMPMGvWLPz8889GAcvPzw+pqamIj49HcHAw5s+fjwcffBAKhQIffvihyaB5zTXXYNOmTXj44YcRFxcHPz8/3HLLLSbv/fLLL+Pmm2/G+PHjcddddxlaSAcGBhrt6UVELsTB3dyIyAmZavPr7e0tXH311cJbb71l1CJXEAShpqZGeOihh4S+ffsKnp6ewtChQ4WXX3653Xl1dXXCXXfdJQQGBgr+/v7C7NmzhbNnz5ptIV1WVmayrtYtmy9evCg8+OCDQmhoqODr6yvccsstQnFxseQW0tOnT2/3+bdtbSsIgnDo0CEhISFB8PLyEiIj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",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.patches as patches\n",
"\n",
"# 두 개의 랜덤 포인트 집합 생성\n",
"pts1 = np.random.randn(100, 2) # 빨간 점들\n",
"pts2 = np.random.randn(100, 2) + np.array([6, 6]) # 파란 점들\n",
"\n",
"def bvh(pts):\n",
" if (N := len(pts)) == 1: \n",
" pt = pts[0]\n",
" return { 'bbox': (*pt, *pt), 'children': [] }\n",
" (x_min, y_min), (x_max, y_max) = pts.min(0), pts.max(0)\n",
" axis = 0 if x_max - x_min >= y_max - y_min else 1\n",
" pts = pts[pts[:,axis].argsort()]\n",
" return {\n",
" 'bbox': (x_min, y_min, x_max, y_max),\n",
" 'children': (bvh(pts[:N//2]), bvh(pts[N//2:]))\n",
" }\n",
"\n",
"def draw(bvh, ax, color='gray'):\n",
" x_min, y_min, x_max, y_max = bvh['bbox']\n",
" rect = patches.Rectangle(\n",
" (x_min, y_min), x_max - x_min, y_max - y_min, \n",
" linewidth=1, edgecolor=color, facecolor='none')\n",
" ax.add_patch(rect)\n",
" for child in bvh['children']:\n",
" draw(child, ax, color)\n",
"\n",
"\n",
"def shortest_distance(bvh1, bvh2):\n",
" \n",
" def squared_distance(bvh1, bvh2):\n",
" bbox1, bbox2 = bvh1['bbox'], bvh2['bbox']\n",
" dx = max(bbox1[0] - bbox2[2], bbox2[0] - bbox1[2], 0)\n",
" dy = max(bbox1[1] - bbox2[3], bbox2[1] - bbox1[3], 0)\n",
" return (dx * dx + dy * dy, bvh1, bvh2)\n",
" \n",
" \n",
" from heapq import heappush, heappop\n",
" min_heap = []\n",
" heappush(min_heap, squared_distance(bvh1, bvh2))\n",
" \n",
" while min_dist := heappop(min_heap):\n",
" _, bvh1, bvh2 = min_dist\n",
" if bvh1['children']:\n",
" heappush(min_heap, squared_distance(bvh2, bvh1['children'][0]))\n",
" heappush(min_heap, squared_distance(bvh2, bvh1['children'][1]))\n",
" elif bvh2['children']:\n",
" heappush(min_heap, squared_distance(bvh2['children'][0], bvh1))\n",
" heappush(min_heap, squared_distance(bvh2['children'][1], bvh1))\n",
" else:\n",
" return bvh1['bbox'][:2], bvh2['bbox'][:2]\n",
"\n",
"\n",
"bvh1, bvh2 = bvh(pts1), bvh(pts2)\n",
"# 시각화\n",
"fig, ax = plt.subplots(figsize=(10, 10))\n",
"draw(bvh1, ax) # 빨간 점의 BVH 그리기\n",
"draw(bvh2, ax) # 파란 점의 BVH 그리기\n",
"ax.scatter(pts1[:, 0], pts1[:, 1], color='red', label='Point Set 1')\n",
"ax.scatter(pts2[:, 0], pts2[:, 1], color='blue', label='Point Set 2')\n",
"ax.set_title('Bounding Volume Hierarchy Visualization')\n",
"ax.legend()\n",
"plt.axis('equal')\n",
"# plt.show()\n",
"\n",
"pt1, pt2 = shortest_distance(bvh1, bvh2)\n",
"plt.plot((pt1[0], pt2[0]), (pt1[1], pt2[1]), color='g')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"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.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}