首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GLGE API setRot/setRotX不工作

GLGE API setRot/setRotX不工作
EN

Stack Overflow用户
提问于 2011-10-11 17:37:28
回答 1查看 517关注 0票数 2

我正试图为观看3D模型做一个小小的准备。

我修改了GLGE示例以从代码中添加一个.dae模型。

http://goleztrol.nl/SO/GLGE/01/

我得到了什么,

到目前为止它起作用了。使用动画旋转摄像机。

使用按钮'Add‘和'Remove’,模型将被添加并从场景中删除,使用下面的代码(不要介意‘鸭子’。在最初的例子中它是一只鸭子。)

代码语言:javascript
复制
var duck = null;
function addDuck()
{
    if (duck) return;
    duck = new GLGE.Collada();

    doc.getElement("mainscene").addCollada(duck);

    duck.setId("duck");
    duck.setDocument("amyrose.dae");
    duck.setLocY(-15);
    duck.setRotX(1);
    duck.setScale(2);
}

function removeDuck()
{
    if (!duck) return;
    doc.getElement("mainscene").removeChild(duck);
    duck = null;
}

问题

现在,这个模型已经躺下了,而它应该站起来。元素的各种方法似乎都起作用了。位置被设置,缩放被设置,但是对setRotX的调用似乎被忽略了。我尝试了api中的其他各种方法,但是setRotY、setRot、setQuatX和setDRotX似乎都失败了。我没有任何错误(不是关于这个方法的)。我尝试了1.57 (大约90度)的值,但其他值也是从1到180不等。

我找不出我做错了什么。当然,我可以在Blender中旋转模型本身,但是我想使用GLGE API来实现它。

更新

当我加载演示模型,seymourplane_triangulate.dae,旋转工作。显然,我的模型不同之处在于它不能旋转。我只是不明白为什么。我想这可能是因为模型是由各种不同的网格构建的,但我不明白为什么缩放和移动是有效的。

有人知道这个模型有什么问题吗?我能做些什么来修复它(也许使用搅拌机)?

在包含场景的XML文件中设置初始旋转确实有效。在另一个元素上设置旋转(就像整个场景一样)也同样有效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-17 22:26:36

你需要在它被加载后旋转它。

您可以在对setDocument的回调中这样做。

代码语言:javascript
复制
duck.setDocument("amyrose.dae", null, function() {
    duck.setLocY(-15);
    duck.setScale(2);
    duck.setRotX(0);
    duck.setRotY(0);
    duck.setRotZ(3);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7730121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档