three.js - how do I rotate a cylinder around a specific point?

前端 未结 3 1497
遥遥无期
遥遥无期 2020-12-01 13:40

I\'ve referred following questions for object rotation.

  • link 1 link 2 link 3 link 4 link 5

But could not understand exactly how do I rotate a cy

3条回答
  •  一生所求
    2020-12-01 13:55

    To give a code example for the above answer of WestLangley:

    // CYLINDER
    var cyl_material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
    var cyl_width = 1;
    var cyl_height = 5;
    // THREE.CylinderGeometry(bottomRadius, topRadius, height, segmentsRadius, segmentsHeight, openEnded )
    var cylGeometry = new THREE.CylinderGeometry(cyl_width, cyl_width, cyl_height, 20, 1, false);
    // translate the cylinder geometry so that the desired point within the geometry is now at the origin
    cylGeometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, cyl_height/2, 0 ) );
    var cylinder = new THREE.Mesh(cylGeometry, cyl_material);
    
    scene.add( cylinder );    
    

    Now the rotation works around the cylinder origin:

    cylinder.rotation.x = 0.5*Math.PI;
    

    Hope that helps.

提交回复
热议问题