我正在尝试使用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;
}
答案 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是有益的。 (这篇博客文章是关于旋转对象所以它应该派上用场!)