Hi, this is a swing I built using llRotLookAt. (non-physical)
> wow! looking values up on a list is faster and easier on the sim than doing
> math?! 0.0
>
> some other time I'm gonna try to make a non-phys swing that will take
> controls to let the "rider" swing back and forth, calculating in realtime
> the new speeds, and I'll probably use that arbitrary pivot trick with
> llSetPrimitiveParams instead of offseting the actual center of rotation of
> the linkset just for kicks Xp
>>>
>>>
AnnMarie@... wrote:
>>>
>>> It is a long time since I did one and mine was a vertical
>>> motion but from memory, here is an outline on how to go about it.
>>>
>>> The program has two segments. The first to generate a list of
>>> numbers that runs only if you change swing parameters.
>>> This list of numbers is used by the second program segment
>>> that moves the swing.
>>> For the first part that generates the data list:-
>>> You decide how many steps you want to do from peak to peak on
>>> the swing.
>>> This can be user-setable if you want to adjust smoothness.
>>> Divide 180 degrees by this number to get the step angle for
>>> looking up.
>>> Start at 90 degrees and step to -90 degrees (converted to
>>> radians) and look up the llSin() of these angles and put them
>>> in a list.
>>> This will give you a list of numbers starting at +1 and ending
>>> at -1.
>>> You now step through this list to create a second list.
>>> You need to scale and convert the numbers from +1 through -1
>>> to an angle for llSetRot().
>>> So +1 will correspond to the highest point on the swing, say
>>> 35 degrees (which can be user adjustable too).
>>> zero will correspond to swing vertical
>>> -1 corresponds to swing back 35 degrees, all converted to radians.
>>>
>>> You run this segment as needed to create the working list that
>>> contains the angles that are plugged into llSetRot() only on
>>> rez, or when user wants to change one of the parameters.
>>>
>>> To run the swing have it sit at half way through the list
>>> (vertical) if you want it to be able to stop.
>>> When it starts, step through the list using a timer set to
>>> total swing time divided by the number of steps (can be user
>>> adjustable).
>>> You will be stepping from mid point on the list to the bottom,
>>> then reverse and step through to the top, then reverse again.
>>> On each step put the list angle value into llSetRot().
>>>
>>> Although it is not physical, there is some smoothing built
>>> into llSetRot() changes, they don't move instantaneoulsy so
>>> experiment to find the minimum number of steps that looks
>>> smooth and reduces computing overhead.
>>>
>>> If you want to get REALLY fancy, you can let the swing
>>> accelerate/decelerate on start/stop by changing the 35 degree
>>> angle in increasing/decreasing steps from/to zero,
>>> recalculating the angle list each time.
>>>
>>> I'm sure the above could be written to calculate the angles on
>>> the fly instead of using the list look-up but I did it this
>>> way. It is easier to understand and is probably less
>>> processing load on the sim computer.
>>>
>>> AnnMarie Otoole.
>>>
>>>
>>> ----- Original Message ----- From: "G" <
gcanaday@...
>>> <mailto:
gcanaday@...>>
>>> To: <
secondlifescripters@...
>>> <mailto:
secondlifescripters@...>>
>>> Sent: Thursday, September 04, 2008 11:22 AM
>>> Subject: Re: Repulsion between physical and other objects
>>>
>>>
>>>
>>> Ann,
>>>
>>> oo? How does that work? /me looks for example...
>>>
>>> G
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Click here to unsubscribe or manage your list subscription:
>>>
>>>
https://lists.secondlife.com/cgi-bin/mailman/listinfo/secondlifescripters>
> _______________________________________________
> Click here to unsubscribe or manage your list subscription:
>
https://lists.secondlife.com/cgi-bin/mailman/listinfo/secondlifescripters>