在二维场景图中:当我在节点中执行旋转或其他转换时,我应该如何在子节点中应用这些操作?如果我在每个孩子中应用手术,可能需要很长时间。我认为当app渲染场景时,在每个节点向下,全局旋转会添加当前节点旋转。翻译和规模相同。当图表中的上升时,将减去这些全局属性。还有更好的方法吗?
答案 0 :(得分:3)
您需要使用一个堆栈来推送和弹出当前的转换矩阵。
def calculateTransformRecursive(self):
pushGlobalTransform();
self.calculateAndStoreGlobalTransform();
for node in self.nodes:
node.calculateTransformRecursive();
popGlobalTransform();
这样每个节点在绘制时都有一个全局变换,并且在向上树时不需要“撤消”变换。