Jump to content

Wind Direction


Rich Reynaud
 Share

You are about to reply to a thread that has been inactive for 1837 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello,

LSL newbie here, though I have some experience with other languages.

I have an object that points in the direction that the wind is blowing TO by using the following line:

 

llLookAt(llGetPos()+llWind(ZERO_VECTOR),1,1);

 

I actually need to point the object in the direction that the wind is blowing FROM. Can anyone assist?

 

Regards,

Rich

Link to comment
Share on other sites

We had this discussion here not long ago, when I was trying to keep my wind vane from flipping upside down.  Here's a wind vane script that works.

default{    state_entry()    {        llSetTimerEvent(1.0);    }    timer()    {        vector wind = llWind(ZERO_VECTOR);        llSetRot(llEuler2Rot(<0.0, 0.0, llAtan2(wind.y, wind.x)>));    }}

 If you want to point the end of the vane in the opposite direction, just reverse the arithmetic sign on the Z element in that vector.

Link to comment
Share on other sites

Thanks Rolig. I was just reading that thread and tried the various scripts that were mentioned. The problem is that my object is already rotated on another axis and those scripts were causing the object to rotate in an unexpected manner.

In reading another post on rotation I found an easy way to do it. I simply multiplied by negative one to reverse the direction:

 

llLookAt(llGetPos()+llWind(ZERO_VECTOR)*-1,1,1);

 

I appreciate your response though.

 

Regards,

Rich

Link to comment
Share on other sites

  • 2 years later...

This nice script to put in a prim, with a touch will output wind speed.

What change would be needed to output the wind direction?

Wolf.

=====================================================

default

{

     state_entry()

     {

            llSay(0, "Touch me for current sl wind speed.");

     }

     touch_start(integer total_number)

    {

            vector wind = llWind(<0,0,0>);

             llSay(0,"Wind speed: " + (string)llVecMag(wind) + " m/s");

    }

}

Link to comment
Share on other sites

  • 1 year later...
  • 1 year later...

I have similar problems to the original poster in that I'm making a Weathervane and despite the scripting being very commonplace, there are no clear answers provided here.  I've found this question (or simliiar) being asked multiple times on this and other forums and the answer is always the same.  It usually goes like this: 

Q - "I have script (shows code), and it works, but I need to know the wind direction." 

A - "Here's a script that works for weathervanes/windsocks that everyone (who is smart) uses." *

*(script doesn't actually include anything about determining SL wind direction)

This is not helpful.  Even the sorta helpful thing at the end where we are given code that outputs actual information, it's the wind SPEED that is output, not the direction.  

The problem with making a windsock/weathervane is that the bit that moves has to be TEXTURED (something the script kiddies don't think about perhaps), and it has to be included in a build, so that the prim could be facing anyone of several directions and still "work."  

The question being asked is how to determine which DIRECTION the wind is coming from or going to in SL so you canlook at the finished product, and tell if it's actually working correctly.  

Here's the actual problem:

1 - I can easily use any of the established scripts to make a weathervane that "points" either of two directions, that are in 90 degree opposition to each other, depending on how the prim is textured/cut, etc.  

2 - The weathervane in question is actually a plane, so there is also the question of which end of said plane, the arrow on the texture should point to.  

Using any of the established scripts and depending on the way the prim is formatted, cut, textured etc., there are actually FOUR completely different directions that the weathervane can "point."  All using the exact same script.  

Since these four possible directions are actually the four cardinal points of the compass, all the scripts provided are actually a complete fail in telling us which DIRECTION the SL wind is coming from or going to.  

So the advice here doesn't answer the actual question.  It allows a noob to make their weathervane work, but it says nothign about the accuracy of the result, and nothing about what direction the resulting vane is actually pointing.  

Surely, there must be code that simply tells us which way the SL Wind is pointing?  

 

 

Link to comment
Share on other sites

Your question was indeed answered in other posts in this thread.  The LSL function llWind yields a vector that is the wind velocity at that point. Recall that velocity is not the same thing as speed.

You can deconstruct the wind vector <wind.x, wind.y, wind.z> to get the magnitude in each of the component directions or, if you want to get the wind speed, you take the magnitude of that vector with llVecMag(llWind(offset))

Neither of those is relevant if you expect to get information from a flexi object, however, since flexi behavior takes place entirely in each user's viewer, not in SL servers.  A flexi object appears to move, but as far as the servers are concerned, it is perfectly rigid and stationary.  If you want to build a wind vane that actually responds to the SL wind, you have to use the approach that others in this thread are using.

 

  • Like 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1837 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...