PDA

View Full Version : Is it possible to stretch an object? How?


Renato Lima
09-03-2010, 11:18 AM
Hi, I have been studying the Vizard engine for quite a while now, but I can't understand how to strech objects through the code.

Imagine a 3D Chart Map, where the chart bars are objects and the information is presented on a texturized wall from where the bars pop into the 3D environment.

How can I strech these bars? I tried to use setScale but it also impacts the distance between the object and the wall, so I need to be able to control set one of its dimensions without using that command.

Any ideas?

Thank you very much.

Jeff
09-03-2010, 01:03 PM
When you scale the bar it's center will remain in the same position. You could either change the bar's center to be at the end that will touch the wall or re-position the bar after scaling it. The following code moves an object's center so it will stay aligned with the ground when scaled:
import viz
viz.go()

ground = viz.add('tut_ground.wrl')
box = viz.add('box.wrl',pos=[0,0.5,0],scale=[0.2,1,0.2])
box.center(0,-0.5,0)

vizact.onkeydown('1',box.setScale,0.2,1,0.2)
vizact.onkeydown('2',box.setScale,0.2,1.5,.2)
vizact.onkeydown('3',box.setScale,0.2,2,0.2)
vizact.onkeydown('4',box.setScale,0.2,2.5,0.2)


import vizcam
viz.cam.setHandler(vizcam.PivotNavigate(center=[0,1,0],distance=6))

Renato Lima
09-05-2010, 09:28 AM
Thank you, Jeff. It works.