User Tools


ทรงกระบอก (Cylinder)

ทรงกระบอกเป็นรูปทรงสามมิติที่มีด้านปิดหัวท้ายแบบราบเรียบโดยด้านที่ปิดจะมีลักษณะเป็นวงกลมหรือวงรี โดยทั้งด้านหัวและท้ายจะมีจุดที่เชื่อมตรงต่อกันเท่ากันทั้ง 2 ด้าน

 ทรงกระบอก

คุณสามารถศึกษาเพิ่มเติมเกี่ยวกับทรงกระบอกได้ที่ MathIsFun.com

ตัวอย่างข้างล่างจะเป็นตัวอย่างการสร้างรูปทรงกระบอก โดยค่ารัศมี (radius) จะเป็นค่าที่กำหนดขนาดของทรงกระบอกจากแกนกลาง และค่าความละเอียด (resolution) จะเป็นค่าที่กำหนดจำนวนส่วนตัดของรูปวงกลมที่ใช้สร้างด้านวงกลม 360 องศา

คุณยังสามารถกำหนดค่าเริ่มต้นและสิ้นสุดของหัว (start) ท้าย (end) ของแกนได้เช่นเดียวกับการกำหนดค่าแบบเดียวกันกับค่ารัศมี (radius)

หมายเหตุ: สามารถดูข้อมูลเพิ่มเติมเกี่ยวกับค่าความละเอียด (resolution) ของรูปทรง 3 มิติ ได้ที่หัวข้อ 3D Primitives

ค่าปริยาย:

  • radius : 1 หรือ
    • radiusStart : 1
    • radiusEnd : 1
  • axis :
    • start : [0,0,-1], end : [0,0,1]
  • resolution : Resolution3D (12)

หมายเหตุ หาก radiusStart หรือ radiusEnd มีค่าเท่ากับ 0 จะเป็นการสร้างทรงกรวย

cylinder({r: 1, h: 10})
cylinder({r: 1, h: 10, center: true})   // ค่าปริยายคือ center: false
cylinder({r: 1, h: 10, center: [true, true, false]})
cylinder({r: 1, h: 10, round: true})
cylinder({r1: 3, r2: 0, h: 10})
cylinder({start: [0,0,0], end: [0,0,10], r1: 1, r2: 2, fn: 50})

คุณสามารถใช้ฟังก์ชันของไลบรารี่ CSG ในการสร้างทรงกระบอกได้ดังนี้ (หมายเหตุ: ไม่สามารถใช้ได้ใน API รุ่นที่ 2)

CSG.cylinder({
  start: [0, -1, 0],
  end: [0, 1, 0],
  radius: 1,
  resolution: 16
});
 
CSG.cylinder({
  start: [0, -1, 0],
  end: [0, 1, 0],
  radiusStart: 1,       // radiusStart และ radiusEnd จะเป็นตัวกำหนดความเป็นทรงกระบอก หากด้านใดด้านหนึ่งเป็น 0 จะกลายเป็นทรงกรวย (Cone) แทน
  radiusEnd: 2,
  resolution: 16
});
 
CSG.roundedCylinder({   // ทรงกระบอกแบบด้านปิดหัวท้ายเป็นแบบโค้งมน
  start: [0, -1, 0],
  end: [0, 1, 0],
  radius: 1,
  resolution: 16
});