Lesson 01 — Góc: độ và radian
Minh hoạ tương tác cho 4 chủ đề chính: đường tròn đơn vị, chuyển đổi độ ↔ radian, so sánh sin(x rad) vs sin(x°), và quy gọn góc.
1. Đường tròn đơn vị tương tác
Kéo slider hoặc gõ trực tiếp. Cho phép góc âm và > 360°.
Độ:
60°
Radian (số):
1.0472
Radian (đẹp):
π/3
Hướng quay:
ngược kim ↺
Vòng quét:
0.17 vòng
x = cos θ:
0.5000
y = sin θ:
0.8660
Toạ độ
(cos θ, sin θ) ở đây là preview Lesson 03 — đường tròn đơn vị. Lesson 02 sẽ định nghĩa sin, cos qua tam giác vuông; Lesson 03 mở rộng cho mọi góc.
2. Bộ chuyển đổi độ ↔ radian
Gõ vào một ô, ô kia sẽ tự cập nhật. Nếu là góc đặc biệt (30°, 45°, 60°, ...) sẽ hiện dạng phân số π.
↔
Dạng đẹp: π/3
Công thức: rad = deg · π/180, deg = rad · 180/π.
3. Demo math.Sin với độ vs radian — bug điển hình
Nhập một số x. Bảng cho thấy 2 cách tính: (a) coi x là radian (cách Go ngầm hiểu) và (b) đổi x độ → radian rồi tính.
| Cách gọi | Biểu thức | Kết quả | Đánh giá |
|---|---|---|---|
math.Sin(x) |
sin(30 rad) | -0.988032 | ❌ Sai (Go hiểu x là rad) |
math.Sin(deg2rad(x)) |
sin(30° → π/6 rad) | 0.500000 | ✓ Đúng (đổi sang rad trước) |
Thử với
x = 180: cách (a) cho ra số gần −0.8 chứ không phải 0 (vì 180 rad ≈ 28.6 vòng + đoạn lẻ). Cách (b) đổi 180° → π rad cho ra ≈ 1.22e-16 ≈ 0.
4. Quy gọn góc về dải chuẩn
Nhập một góc bất kỳ (có thể âm, có thể > 360°). Bấm Quy gọn để xem từng bước cộng/trừ 2π (hoặc 360°) đến khi vào [0°, 360°).
Trong Go, dùng
math.Mod(rad, 2*math.Pi) để lấy phần dư (nó giữ dấu của số bị chia, nên còn phải if r < 0 { r += 2π } để đẩy về dương). Toán tử % trong Go không áp dụng cho float — phải dùng math.Mod.