三个js对象z位置在碗

时间:2016-11-25 17:35:25

标签: javascript 3d three.js

我正在进行一场三场比赛。

现在,应该发生的是一个从z位置-5000到0的球。

这是我创建网格的方式:

    let geometry  = new THREE.SphereGeometry(100, 32, 32);
    let material  = new THREE.MeshBasicMaterial({
        map: loader.load("images/SoftballColor.jpg"), side: THREE.BackSide
    });
    mesh = new THREE.Mesh(geometry, material);

    mesh.position.set(0,0, -5000);

在渲染中,我运行此代码(球越来越近):

mesh.position.z += 50;

球来到我身边,但直线

我想做的是,在碗里做这个。有什么想法吗?

我会添加一些图片以使其更清晰。

提前谢谢。

球运动:

enter image description here

1 个答案:

答案 0 :(得分:0)

Sinus功能会有所帮助。

var how_high = 1000;
var start_position = new THREE.Vector3(0,0,-5000);

你知道球的位置的z值,因此,它的y值将是

ball.position.y = Math.sin(ball.position.z / start_position.z * Math.PI) * how_high;

jsfiddle示例