Canvas 2D · Verlet integration · distance constraints
ผ้ากับเชือกเสมือนจริง
ฟิสิกส์ผ้าด้วยเทคนิค Verlet integration — แทนที่จะเก็บความเร็ว เราเก็บแค่ตำแหน่ง "ตอนนี้" กับ "เฟรมก่อน" ความเร็วคือผลต่างของสองค่านี้เอง. จุดทุกจุดเชื่อมกันด้วย ข้อจำกัดระยะ (constraint) ที่ดึงให้ยาวคงที่ ทำซ้ำหลายรอบต่อเฟรมจนผ้าทรงตัว. ลากเพื่อจับผ้า สลับเป็น ตัด แล้วลากผ่านเส้นเพื่อฉีก
— fps ·
รูปทรง
ตัวชี้
การกระทำ
เส้นเปลี่ยนสีตามแรงดึง (เขียว = ผ่อน, แดง = ตึง) · จุดเขียว = หมุดที่ปักไว้ · ตั้ง ลดการเคลื่อนไหว = เริ่มแบบหยุดนิ่ง
วิธีทำงาน: แต่ละจุดเก็บ
(x,y) และ (ox,oy) ของเฟรมก่อน.
อัปเดตตำแหน่ง: x += (x-ox) + แรง — ผลต่าง x-ox คือความเร็วโดยปริยาย (Verlet).
จากนั้นวน satisfy constraints หลายรอบ: ดึงคู่จุดให้กลับมาห่างเท่าระยะตั้งต้น ยิ่งวนมาก ผ้ายิ่งแข็ง.
การ "ตัด" ก็แค่ปิดข้อจำกัดเส้นที่ตัวชี้ลากผ่าน (ทดสอบ segment intersection).