2011-04-20 141 views
2

我们正试图创建一个简单的编程环境,让人们生成3D表单(它受到Scratch project的启发)。我们希望它能够以“乌龟几何”的方式工作,在这种方式中,一个生物(我们称之为甲虫,与标志乌龟类似)在三维空间中移动,并且可以沿着它的位置离开物体和方向。我们如何在three.js中创建乌龟几何?

我们目前使用Three.js。虽然您可以移动和旋转对象,但如何创建我们想要的效果并不清楚,翻译和旋转“积累”并可应用于新对象。我们还想存储一堆这些矩阵来推送和弹出。

下面是一个具体的例子。我们的系统会创建这样一个程序的用户(这是伪代码):

repeat 36 [ 
    move 10 
    rotate 10 
    draw cube 
] 

的想法是,甲虫,会绕了一圈移动在执行这个计划,在每个位置留下一个立方体。

这是可能的使用Three.js?我们是否需要切换到纯WebGL?

+1

强制链接:http://stackoverflow.com/questions/1003841/how-do-i-move-the-turtle-in-logo – BoltClock 2011-04-20 17:51:48

+1

什么将'旋转10'意味着在3D环境中?关于哪个轴和点?不错的项目。 – Orbling 2011-05-30 13:29:03

回答

0

要求听起来相当高级。没有理由需要原始webgl的低级访问。像three.js这样的更高级别的库,可以做得很好。

正如@Orbling指出的那样,你需要计算3D的旋转角度;例如

rotateX 10 

(绕x轴逆时针10度),或

turnLeft 10 

(逆时针旋转10度围绕电流达载体)。