-1

在二维场景图中:当我在节点中执行旋转或其他变换时,我应该如何在子节点中应用这些操作?如果我在每个孩子身上应用这个手术,可能会花费很多时间。我想当应用程序渲染场景时,在每个节点向下的全局旋转中添加了当前节点旋转。平移和比例也是如此。当图表中上升时,这些全局属性被减去。有没有更好的办法?

4

1 回答 1

3

您需要使用一个堆栈,在该堆栈上推送和弹出当前转换矩阵。

def calculateTransformRecursive(self):

  pushGlobalTransform();
  self.calculateAndStoreGlobalTransform();
  for node in self.nodes:
    node.calculateTransformRecursive();
  popGlobalTransform();

这样每个节点在绘制时都有一个全局变换,向上树时不需要“撤消”变换。

于 2011-09-18T01:55:40.970 回答