Curved plane surface in CSS3 or Three.js?

前端 未结 1 565
青春惊慌失措
青春惊慌失措 2020-12-15 13:44

How can I create a curved plane surface (like the one pictured) using CSS3 or Three.js?

\"curved

相关标签:
1条回答
  • 2020-12-15 14:28
    var width = 100, height = 100, width_segments =1, height_segments = 100;
    var plane = new THREE.PlaneGeometry(width, height, width_segments, height_segments);
    
    for(var i=0; i<plane.vertices.length/2; i++) {
        plane.vertices[2*i].position.z = Math.pow(2, i/20);
        plane.vertices[2*i+1].position.z = Math.pow(2, i/20);
    }
    
    var mesh = new THREE.Mesh(plane, new THREE.MeshLambertMaterial({color: 0x888888}));
    mesh.doubleSided = true;
    mesh.rotation.y = Math.PI/2-0.5;
    scene.add(mesh);
    

    You create geometry, and displace it's vertices the way you would like to. For creating curved surface you could use 'sin' or 'cos' functions, or exponential, as I showed. Hope this helps.

    0 讨论(0)
提交回复
热议问题