✅ 手順1:VS Codeの準備
① Pythonをインストール
まだの方は、公式サイトからPythonをインストールしてください。
👉 https://www.python.org/downloads/
インストール時に必ず
✅「Add Python to PATH」にチェックを入れてください。
② VS Codeをインストール
👉 https://code.visualstudio.com/
③ Python拡張機能を入れる
VS Codeを開いて、
左の「拡張機能(四角いアイコン)」 → 検索バーに Python → 「Python(Microsoft)」 をインストール。
✅ 手順2:作業フォルダを作る
デスクトップなどに新しいフォルダを作成します。
例:
C:\Users\あなたの名前\Desktop\vpython_collision
このフォルダを VS Codeで開く
(→ [ファイル] → [フォルダを開く])
✅ 手順3:Pythonファイルを作成
- VS Codeで右クリック → 「新しいファイル」
- 名前をつける →
collision_vpython.py - 下のコードを貼り付ける
# Program Name: collision_vpython.py
# Creation Date: 20251015
# Overview: Simulate 1D elastic collision between two balls using VPython
# Usage: Run in VS Code terminal → python collision_vpython.py
from vpython import sphere, vector, rate, color, scene
# --- Parameters ---
m1, m2 = 2.0, 1.0
v1, v2 = 2.0, -1.0
r1, r2 = 0.5, 0.5
dt = 0.005
x1_init, x2_init = -4.0, 4.0
# --- Scene setup ---
scene.background = color.white
scene.width = 800
scene.height = 400
scene.center = vector(0, 0, 0)
scene.title = "1D Elastic Collision Simulation"
ball1 = sphere(pos=vector(x1_init, 0, 0), radius=r1, color=color.blue, make_trail=True)
ball2 = sphere(pos=vector(x2_init, 0, 0), radius=r2, color=color.red, make_trail=True)
v1_vec = vector(v1, 0, 0)
v2_vec = vector(v2, 0, 0)
# --- Simulation loop ---
while True:
rate(200)
ball1.pos += v1_vec * dt
ball2.pos += v2_vec * dt
# 衝突判定
if abs(ball1.pos.x - ball2.pos.x) <= (r1 + r2):
v1_new = ((m1 - m2) / (m1 + m2)) * v1_vec.x + (2 * m2 / (m1 + m2)) * v2_vec.x
v2_new = ((2 * m1) / (m1 + m2)) * v1_vec.x + ((m2 - m1) / (m1 + m2)) * v2_vec.x
v1_vec.x, v2_vec.x = v1_new, v2_new
# 壁反射
if abs(ball1.pos.x) > 6:
v1_vec.x *= -1
if abs(ball2.pos.x) > 6:
v2_vec.x *= -1
✅ 手順4:VPythonをインストール
VS Codeの下のターミナルを開きます(Ctrl + @キーで開く)。
次を入力して実行:
pip install vpython
(※ 一度だけでOK)
✅ 手順5:実行する
ターミナルで次を入力:
python collision_vpython.py
✅ 手順6:動作確認
- 自動的にブラウザ(またはVS Code内の表示ウィンドウ)が開く
- 白い背景の上で青と赤のボールがぶつかって跳ね返る
これで成功です!
💡補足
- もし「ブラウザが開かない」場合は、
http://localhost:port番号をターミナルに表示されるURLから開いてください。 - VPythonはリアルタイム3D描画を行うため、ブラウザが開いて表示されるのが正しい動作です。
-
Ctrl + Cでシミュレーションを停止できます。