如何在处理中调整.OBJ模型的位置(python)

时间:2015-06-09 22:09:12

标签: python processing

在处理过程中,我使用loadShape()shape()命令加载了太空飞船的模型,但加载的模型是颠倒的。

当我使用camera()命令尝试解决问题时,背景的一部分总是被切断并转换然后投射到模型上。

所以我的问题是,我怎样才能转动船只,然后调整相机的视角,而不影响背景?

1 个答案:

答案 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