Widget: canvas (camera)

Osserva gli attributi di un oggetto canvas

  • Escludi/ammetti userspan, userspin, userzoom e prova a cambiare la vista
  • scene.camera.axis = scene.camera.pos - scene.center
  • …
from vpython import *
 
arrow(axis = vector(1, 0, 0), color = color.magenta)
arrow(axis = vector(0, 1, 0), color = color.yellow)
arrow(axis = vector(0, 0, 1), color = color.cyan)

def bind_autoscale(evt): scene.autoscale = evt.checked
def bind_userpan  (evt): scene.userpan   = evt.checked
def bind_userspin (evt): scene.userspin  = evt.checked
def bind_userzoom (evt): scene.userzoom  = evt.checked

scene.append_to_caption("\n "); cb_autoscale = checkbox(bind = bind_autoscale, checked = scene.userpan ); scene.append_to_caption(" scene.autoscale")
scene.append_to_caption("\n "); cb_userpan   = checkbox(bind = bind_userpan  , checked = scene.userpan ); scene.append_to_caption(" scene.userpan"  )
scene.append_to_caption("\n "); cb_userspin  = checkbox(bind = bind_userspin , checked = scene.userspin); scene.append_to_caption(" scene.userspin" )
scene.append_to_caption("\n "); cb_userzoom  = checkbox(bind = bind_userzoom , checked = scene.userzoom); scene.append_to_caption(" scene.userzoom" )
scene.append_to_caption("\n");
scene.append_to_caption("\n scene.camera.axis\t"); wt_camera_axis = wtext(text = scene.camera.axis)
scene.append_to_caption("\n scene.camera.pos\t" ); wt_camera_pos  = wtext(text = scene.camera.pos )
scene.append_to_caption("\n");
scene.append_to_caption("\n scene.center\t" ); wt_center  = wtext(text = scene.center )
scene.append_to_caption("\n scene.forward\t"); wt_forward = wtext(text = scene.forward)
scene.append_to_caption("\n scene.fov\t\t"  ); wt_fov     = wtext(text = scene.fov    )
scene.append_to_caption("\n scene.range\t"  ); wt_range   = wtext(text = scene.range  )

while(True):
    rate(5)

    wt_camera_axis.text = str(scene.camera.axis)
    wt_camera_pos.text  = str(scene.camera.pos)
    wt_center.text      = str(scene.center)
    wt_forward.text     = str(scene.forward)
    wt_fov.text         = str(scene.fov)
    wt_range.text       = str(scene.range)

Lascia un commento