gpt4 book ai didi

python - Panda3d 模型旋转

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:16 25 4
gpt4 key购买 nike

我有一个基于教程编写的程序:

from direct.showbase.ShowBase import ShowBase

class MyApp(ShowBase):

def __init__(self):
ShowBase.__init__(self)

# Load the environment model.
self.environ = self.loader.loadModel("models/misc/rgbCube")
# Reparent the model to render.
self.environ.reparentTo(self.render)
# Apply scale and position transforms on the model.
self.environ.setScale(10, 10, 10)
self.environ.setPos(-8, 42, 0)



app = MyApp()
app.run()

我想要这样的东西:

self.environ.rotate(旋转轴,以度数旋转)

我在谷歌上进行了大量搜索,唯一看起来可行的是:http://www.panda3d.org/manual/index.php/Position,_Rotation_and_Scale_Intervals你猜怎么着!它没有。你能给我指一个深入解释 Hpr 的网站吗,或者只是在这里解释一下?谢谢。

最佳答案

Panda 使用欧拉角(又名飞行角)来表示旋转。传递给 setHpr 的角度是 yaw-pitch-roll 角度(以度为单位),除了 Panda 使用术语“heading”而不是“yaw”,因为字母 Y 已经用于 Y 位置。

用你的话说,H角是模型绕(0, 0, 1)轴旋转多少,P角是绕(1, 0, 0)轴旋转多少,R角是多少它围绕 (0, 1, 0) 轴旋转。

如果您想在自己的坐标系中旋转模型,就像您想要做的那样,您可以将模型作为第一个参数传递给任何 setHpr 函数,以便 Panda 计算模型坐标系中的新旋转:

# Rotates the model 90 degrees around its own up axis
model.setH(model, 90)

当您旋转模型时,它会围绕其原点(它的相对 (0, 0, 0) 点)旋转。如果您希望它围绕不同的点旋转,执行此操作的典型方法是创建一个旋转的虚拟中间节点:

pivotNode = render.attachNewNode("environ-pivot")
pivotNode.setPos(...) # Set location of pivot point
environ.wrtReparentTo(pivotNode) # Preserve absolute position
pivotNode.setHpr(...) # Rotates environ around pivot

我知道您没有要求,但以防万一它有帮助。

关于python - Panda3d 模型旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com