กลับไปหน้าบทความ

อ่าน 3 นาที

แคนนอน.เจเอส

Computer physics engines/Software using the MIT license

Cannon.jsเป็น เอ็นจิ้นฟิสิกส์ 3 มิติJavaScript แบบโอ เพนซอร์สที่สร้างโดย Stefan "schteppe" Hedman แตกต่างจากไลบรารีเอ็นจิ้นฟิสิกส์ที่แปลงจาก C++ เป็น JavaScript Cannon.

แคนนอน.เจเอส

แคนนอน.เจเอส
นักพัฒนาสเตฟาน เฮดแมน
เวอร์ชันเสถียร
0.6.2 / 28 มีนาคม 2558 [ 1 ] ( 28 มีนาคม 2015 )
เขียนเป็นสคริปต์
ระบบปฏิบัติการระบบปฏิบัติการที่ไม่ขึ้นกับระบบปฏิบัติการ
พิมพ์เอ็นจิ้นฟิสิกส์ 3 มิติ
ใบอนุญาตใบอนุญาต MIT
เว็บไซต์github .com /schteppe /cannon .js
ที่เก็บข้อมูล
  • github .com /schteppe /cannon .js

Cannon.jsเป็น เอ็นจิ้นฟิสิกส์ 3 มิติJavaScript แบบโอ เพนซอร์สที่สร้างโดย Stefan "schteppe" Hedman [ 2 ]แตกต่างจากไลบรารีเอ็นจิ้นฟิสิกส์ที่แปลงจาก C++ เป็น JavaScript Cannon.js เขียนด้วย JavaScript ตั้งแต่เริ่มต้นและสามารถใช้ประโยชน์จากคุณสมบัติของมันได้[ 3 ]ในการเปรียบเทียบกับ Ammo.js ในปี 2013 พบว่า Cannon.js นั้น "กะทัดรัดกว่า เข้าใจง่ายกว่า มีประสิทธิภาพมากกว่า และเข้าใจง่ายกว่า" แต่ไม่มีคุณสมบัติมากเท่า[ 4 ]

คุณสมบัติ

Cannon.js รองรับรูปทรงต่อไปนี้: ทรงกลม ระนาบ กล่อง ทรงกระบอกรูปทรงหลายเหลี่ยมนูนอนุภาค และฟิลด์ความสูงชุดรูปทรงนี้ตรงกับชุดที่ใช้โดยเอ็นจิ้นการเรนเดอร์ เช่นThree.jsและBabylonแต่ไม่สมบูรณ์ ตัวอย่างเช่น ไม่เพียงพอสำหรับ X3DOM [ 4 ] ซึ่ง เป็นแอปพลิเคชันของX3D ที่อนุญาตให้รวมกราฟิก 3 มิติในหน้า เว็บโดยไม่ต้องใช้ปลั๊กอิน[ 5 ]

เอนจินฟิสิกส์ใช้พลศาสตร์ของวัตถุแข็งการตรวจจับการชน แบบไม่ต่อเนื่อง และตัวแก้ข้อจำกัดGauss-Seidel [ 6 ] สามารถทำการจำลองผ้า ได้ [ 7 ]

Cannon.js สามารถใช้ร่วมกับ Three.js และ Babylon.js [ 8 ] [ 9 ]ซึ่งเป็นตัวเรนเดอร์ WebGL เพื่อสร้างฉาก 3 มิติแบบอิงฟิสิกส์ นอกจากนี้ยังสามารถใช้เพื่อจัดเตรียมการซิงโครไนซ์ฟิสิกส์แบบเครือข่ายสำหรับเกมออนไลน์แบบผู้เล่นหลายคนโดยใช้ Lance.gg [ 10 ]

ตัวอย่าง

โค้ดตัวอย่างด้านล่างสร้างทรงกลมบนระนาบ ดำเนินการจำลอง และพิมพ์ผลการจำลองทรงกลมลงในคอนโซล โปรดทราบว่า Cannon.js ใช้หน่วย SI (เมตร กิโลกรัม วินาที ฯลฯ) [ 11 ]

// ตั้งค่าโลกของเราvar world = new CANNON.World ( ) ; world.gravity.set ( 0 , 0 , -9.82 ) ; // m / // สร้างทรงกลมvar radius = 1 ; // เมตรvar sphereBody = new CANNON.Body ( { mass : 5 , // กิโลกรัมposition : new CANNON.Vec3 ( 0 , 0 , 10 ) , // เมตรshape : new CANNON.Sphere ( radius ) } ) ; world.addBody ( sphereBody ) ;// สร้างระนาบvar groundBody = new CANNON.Body ( { mass : 0 // mass == 0 ทำให้วัตถุอยู่นิ่ง} ); var groundShape = new CANNON.Plane () ; groundBody.addShape ( groundShape ) ; world.addBody ( groundBody ) ;var fixedTimeStep = 1.0 / 60.0 ; // วินาทีvar maxSubSteps = 3 ;// เริ่มลูปการจำลองvar lastTime ; ( function simloop ( time ) { requestAnimationFrame ( simloop ) ; if ( lastTime !== undefined ) { var dt = ( time - lastTime ) / 1000 ; world.step ( fixedTimeStep , dt , maxSubSteps ); } console.log ( " ตำแหน่ง แกน z ของ ทรง กลม: " + sphereBody.position.z ) ; lastTime = time ; } ) ();
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Cannon.js&oldid=1350004751 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แคนนอน.เจเอส

Cannon.jsเป็น เอ็นจิ้นฟิสิกส์ 3 มิติJavaScript แบบโอ เพนซอร์สที่สร้างโดย Stefan "schteppe" Hedman แตกต่างจากไลบรารีเอ็นจิ้นฟิสิกส์ที่แปลงจาก C++ เป็น JavaScript Cannon.

คุณสมบัติ

Cannon.js รองรับรูปทรงต่อไปนี้: ทรงกลม ระนาบ กล่อง ทรงกระบอก รูปทรงหลายเหลี่ยมนูน อนุภาค และฟิลด์ ความสูง ชุดรูปทรงนี้ตรงกับชุดที่ใช้โดยเอ็นจิ้นการเรนเดอร์ เช่น Three.

ตัวอย่าง

โค้ดตัวอย่างด้านล่างสร้างทรงกลมบนระนาบ ดำเนินการจำลอง และพิมพ์ผลการจำลองทรงกลมลงในคอนโซล โปรดทราบว่า Cannon.js ใช้ หน่วย SI (เมตร กิโลกรัม วินาที ฯลฯ) [ 11 ]

ลิงก์ภายนอก

cannon.jsบน GitHub ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Cannon.js&oldid=1350004751 "