在处理过程中,我使用loadShape()
和shape()
命令加载了太空飞船的模型,但加载的模型是颠倒的。
当我使用camera()
命令尝试解决问题时,背景的一部分总是被切断并转换然后投射到模型上。
所以我的问题是,我怎样才能转动船只,然后调整相机的视角,而不影响背景?
答案 0 :(得分:0)
你应该看看pushMatrix() / popMatrix()。 还要结帐2D Transformations tutorial。 它使用Java语法和2D(不是Python和3D),但它确实很棒 解释坐标系和使用推/弹矩阵调用的工作。
这是修改后的LoadDisplayOBJ Python示例,因此它会在右侧绘制火箭,而不会影响全局坐标系:
ry = 0
def setup():
size(640, 360, P3D)
global rocket
rocket = loadShape("rocket.obj")
def draw():
global ry
background(0)
lights()
translate(width / 2, height / 2 + 100, -200)
pushMatrix() #isolate coordinate system for rocket only (local)
translate(200,0,0) #move the rocket to the right
rotateZ(PI)
rotateY(ry)
shape(rocket)
popMatrix()#exit rocked coordinate system, return to Processing's (global) coordinate system
#if you draw something here, it will be at the centre, not the right
ry += 0.02