WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Unable to perform 360 rotation using vizact.spinto (https://forum.worldviz.com/showthread.php?t=2286)

vijaykiran 09-28-2009 04:11 PM

Unable to perform 360 rotation using vizact.spinto
 
Hello,

I am trying to make an object perform a single spin action for 360 degrees followed by a forward motion. The following piece of code doesn't seem to help and the object just stays put.

Code:

model = viz.add('object.ive')
spinToYaw = vizact.spinto([0,1,0, 360], 50)
moveForward = vizact.move([0,0,4], 5)

model.addAction( spinToYaw )
model.addAction( moveForward )

I am however able to get up to 180 degrees of rotation with:
Code:

spinToYaw = vizact.spinto([0,1,0, 180], 50)

Any more than 180 degrees spins the object in the opposite direction:
Code:

spinToYaw = vizact.spinto([0,1,0, 181], 50)

To perform a 360 degree rotation, I thought i could get lucky if I run yaw actions two times using:
Code:

spinToYaw = vizact.spinto([0,1,0, 180], 50)
...
model.addAction( spinToYaw )
model.addAction( spinToYaw )
model.addAction( moveForward )

The above did nothing but rotate the model by 180 degrees and then immediately moved forward as defined in
Code:

moveForward
action. The second call to
Code:

model.addAction( spinToYaw )
did not make any difference.

On the other hand, if I have a different axis for spinto as in the code below:
Code:

spinToYaw = vizact.spinto([0,1,0, 180], 50)
spinToRoll = vizact.spinto([0,0,1, 180], 50)
...
model.addAction( spinToYaw )
model.addAction( spinToRoll )
model.addAction( moveForward )

So, here are my two questions:

1) I get a 180 degree yaw, followed by 180 degree roll and then forward movement. If this logic works, then shouldn't two 180 degree yaws work as a 360 degree rotation ?

2) If there is a reason why two 180 degree yaws will not equal to a 360 degree rotation, what do I need to do to obtain just one single 360 degree rotation followed by another action. I do not want to use viz.FOREVER because it will keep on spinning the model.


Thanks,
Vijay.

farshizzo 09-28-2009 04:26 PM

The vizact.spinto action will take the shortest path to reach the target orientation. If you are turning 360 degrees, then the shortest path is to do nothing.

Instead, use the vizact.spin action and calculate the duration and speed so the end result is 360 degrees ( speed * duration = 360 ).

vijaykiran 09-29-2009 08:39 AM

Thanks farshizzo. That was what I was looking for.


All times are GMT -7. The time now is 06:27 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC