Lesson 12 — Constraints: Cloth & Rope
Điểm khối lượng chạy Verlet, rồi bị ép về đúng khoảng cách nghỉ (distance constraint), lặp lại nhiều lần mỗi frame (relaxation). Ba mô phỏng thời gian thực: vải kéo/xé bằng chuột, dây đung đưa, và demo iteration thấy độ cứng.
1. Vải (cloth) — kéo & xé bằng chuột
Lưới điểm ghim ở mép trên. Kéo chuột (hoặc chạm) để nắm và di chuyển điểm gần nhất. Bật chế độ cắt rồi rê chuột để xé vải. Giảm iteration để thấy vải co giãn nhão; tăng gió để thấy phấp phới.
2. Dây / chuỗi (rope) — đung đưa theo chuột & trọng lực
Chuỗi điểm nối tiếp, ghim đầu trên cùng. Kéo chuột để giật đầu dưới; thả ra dây đung đưa theo trọng lực. Bật ghim đầu để thấy hiệu ứng "quên pin → rơi hết".
3. Iteration demo — cùng một dây, đổi độ cứng
Ba dây giống hệt nhau, chỉ khác số iteration. Cùng kéo căng (đầu dưới gắn vào điểm kéo ngang). Dây ít iteration giãn nhão như cao su; nhiều iteration thì cứng, giữ gần đúng độ dài nghỉ. Kéo slider để thấy dây giữa biến đổi.
4. Walk-through: hội tụ của chuỗi 3 điểm
Bảng số từ §3.3 README — ép chuỗi A–B–C (rest length 10, A ghim), |AB| hội tụ về 10:
| Iteration | |AB| sau lượt | Sai số so với L=10 |
|---|
Mỗi iteration đưa |AB| gần 10 hơn — đây là lý do iteration nhiều = dây cứng.