JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r120/three.min.js"></script>
JavaScript
var camera, scene, renderer, geometry, material, mesh;
init();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 100;
scene.add(camera);
var planes = [
new THREE.Plane(new THREE.Vector3(1, 0,-0.5), -3),
];
geometry = new THREE.CylinderGeometry(15, 15, 50, 64);
material = new THREE.MeshNormalMaterial({
clippingPlanes: planes,
side: THREE.DoubleSide
});
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
renderer = new THREE.WebGLRenderer({alpha: true});
renderer.localClippingEnabled = true;
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
render();
}
function render() {
mesh.rotation.x += 11;
mesh.rotation.y += 1;
mesh.rotation.z += -15;
renderer.render(scene, camera);
}