围绕自身旋转3D球体 - webGL

时间:2016-10-02 08:14:53

标签: javascript 3d webgl

我正在尝试使用webGL构建3D太阳能系统 我让所有的星星围绕着太阳绕着太阳移动,我希望它们围绕自己的Y轴旋转。
我该如何添加它? 我试过了:

mat4.rotate(mvMatrix, degToRad(starsList[i].Yangle), [1, 0, 0]);

但结果很糟糕。
有什么帮助吗?

mat4.identity(mvMatrix);
mat4.translate(mvMatrix, [0, 0, -30]);

    for (i = 0; i < starsList.length; i++) {  
        mvPushMatrix();
        mat4.rotate(mvMatrix, degToRad(starsList[i].angle), [0, 1, 0]);
        mat4.rotate(mvMatrix, degToRad(starsList[i].Yangle), [1, 0, 0]);

        mat4.translate(mvMatrix, starsList[i].initPlace);
        mvPopMatrix(); 
     }


var lastTime = 0;

function animate() {
    var timeNow = new Date().getTime();
    if (lastTime != 0) {
        var elapsed = timeNow - lastTime;
        for (i = 0; i < starsList.length; i++) { 
            starsList[i].angle += starsList[i].speed * elapsed;
            starsList[i].Yangle += starsList[i].speed * elapsed;

        }
    }
    lastTime = timeNow;
}

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题

foreach ($cut as $key => $value) {
            echo "foreach key:".$key."<br>";
            if(in_array($value,$operators))
            {
                if($value == '||')
                {
                    echo "found || in position:".$key."<br>"; 
                    if(($key+1<sizeof($cut)))
                    {
                        $multi = new multi;
                        echo "<br>"."key-1: ";
                        print_r($cut[$key-1]);
                        echo"<br>";
                        echo "<br>"."key+1: ";
                        print_r($cut[$key+1]);
                        echo"<br>";
                        $res = $multi->orex($cut[$key-1],$cut[$key+1],$numString);
                        $cut[$key-1]= $res;
                        array_splice($cut,$key,1);
                        array_splice($cut,$key,1);
                        $key--; //here trying to change the key
                        echo "new string:";
                        print_r($cut);
                        echo "<br>";
                        echo "key:".$key."<br>";
                    }

                }

            }
        }

注意向量[0,1,0],x值为0,y值为1.我喜欢考虑表示旋转轴的向量。这里有很多有用的信息stackoverflow question.此外,我发现这个website是有益的。 (这篇博客文章是关于旋转对象所以它应该派上用场!)