Lesson 02 — Vectors & Kinematics

Ba mô phỏng tương tác: bắn projectile (quỹ đạo parabol), vector playground (cộng + chuẩn hoá), và demo bug "đi chéo nhanh gấp √2". Lưu ý hệ canvas: y hướng xuống, lên = y âm.

1. Projectile Launcher — ném xiên

Chỉnh góc bắn + tốc độ đầu + trọng lực, bấm Bắn để xem quỹ đạo parabol. Có thể kéo trực tiếp mũi tên vận tốc đầu trên canvas. Tầm xa & độ cao max cập nhật realtime.

v₀ (vx, vy)
Tầm xa R
Độ cao max H
Thời gian bay T

Công thức: R = s²·sin(2θ)/g (xa nhất ở 45°), H = s²·sin²θ/(2g), T = 2·s·sinθ/g. Đường nét đứt = quỹ đạo lý thuyết; chấm = vị trí mô phỏng từng frame.

2. Vector Playground — cộng & chuẩn hoá

Kéo đầu hai vector a (đỏ) và b (xanh). Tổng a+b (xanh lá) vẽ theo quy tắc nối đuôi. Bật chuẩn hoá để thấy vector đơn vị (độ dài 1) của a.

a = (x, y)
b = (x, y)
a + b
|a|
â = a / |a|

Mỗi ô lưới = 40px. Vector hiển thị theo đơn vị lưới (chia 40) để dễ đọc. â luôn có độ dài đúng 1.

3. Diagonal Speed Bug — đi chéo nhanh gấp √2

Di chuyển hai chấm bằng phím WASD / mũi tên hoặc nút bên dưới. Chấm đỏ = KHÔNG chuẩn hoá, chấm xanh = CÓ chuẩn hoá. Giữ phím chéo (vd Right+Up) → chấm đỏ chạy nhanh hơn rõ rệt.

Bấm vào khung rồi dùng WASD / phím mũi tên.
Giữ chuột trên nút để di chuyển liên tục. Thử bấm ↑ và → cùng lúc (giữ một nút + một phím).
Hướng input dir
(0, 0)
Tốc độ chấm đỏ (thô)
0
Tốc độ chấm xanh
0
Chênh lệch

Khi đi chéo mà KHÔNG chuẩn hoá: tốc độ = speed·√2 ≈ 141% tốc độ đi thẳng. Bật chuẩn hoá → cả hai bằng nhau.