Code:
import viz, vizshape, vizact
import random
# run script
viz.go()
viz.setMultiSample(4)
# create world
#world = viz.add('spot_rotation_resources/circle_grass_lukas2.osgb')
world = vizshape.addCylinder(.01,50)
#tex = viz.addTexture('GRASS.JPG')
#world.texture(tex)
world.color(viz.GREEN)
light = viz.addLight()
light.setEuler(0,45,0)
# create spot
spot_elevation = .05
spot_height = 2.5
spot_nslices = 1 #originally 100
spot_slice_height = spot_height / spot_nslices
alpha_start = 0.5
alpha_end = 0.0
alpha_step = (alpha_end - alpha_start)/spot_nslices
spot = []
for a in range(spot_nslices):
cyl = vizshape.addCylinder(height=spot_slice_height, radius=0.30, color=viz.YELLOW, top=None)
cyl.alpha( alpha_start + a*alpha_step )
spot_yPos = spot_slice_height/2 + spot_elevation + a*spot_slice_height
cyl.setPosition([0,spot_yPos,10])
spot.append(cyl)
# rotate ground
def random_rotate(object_to_rotate, duration):
rotate_val = random.randint(1, 360)
spinto = vizact.spinTo(euler=(rotate_val, 0, 0), time=0, mode=viz.REL_GLOBAL)
fadeout = vizact.fadeTo(0, time=duration)
fadein = vizact.fadeTo(1, time=duration)
rotate_action = vizact.sequence(fadeout, spinto, fadein)
object_to_rotate.addAction(rotate_action)
vizact.onkeydown('r', random_rotate, world, 1)
Also works with
Code:
vizact.onkeydown('s', world.alpha, .9)
instead of the fading action.