salahzar icon

base

salahzar | PRO | 01/27/22 02:34:50 PM UTC | 0 ⭐ | 11418 👁️ | Never ⏰ | []
LScript |

2.42 KB

|

None

|

0 👍

/

0 👎

 
 
 
// FORMULA MATEMATICA TRIGONOMETRICA APPLICATA A SL;   P=Rcos(t)ù+Rsin(t)ù+ 
 
 
//                       * :  *
//                    *    :     *
//                  *      Y_______*A(XY)                 O = CENTRO BASE
//                *        |       | *                    O-Y = RAGGIO 
//               *         |       |  *                   O-X = COSENO          
//                         |      sinA                    X-A = SENO
//              *..........O__cosA_|X..*                  A = ANGOLO
//              *          :           *
//                         :
//               *         :          *
//                *        :         *
//                 *       :       *
//                   *     :     *
//                       *    *
 
//La componente X delle coordinate di un cerchio è  Rcos A, mentre la componente Y di coordinate vale Rsin A dove A è l’angolo.
//Da questo schema si capisce che per poter descrivere una circonferenza è sufficiente prendere un angolo A e farlo scorrere fra 0 e 360 gradi: pilotando le coordinate X e Y definite come RcosA e RsinA viene descritta appunto l’intera circonferenza.
////////////////////////////////////////////////////////////////////////
 
vector posizione;
/// TUTTE LE MISURE SEGUENTI SONO DA CERCARE in base alla posizione dell'oggetto madre SLINKATO
float angle = 135; // GRADI di rotazione sulla circonferenza virtuale dal centro BASE  quindi il punto dove si trova l'oggetto slinkato (posizionamento)
float altezza = 0.3; //incremento altezza dell'oggetto slinkato rispetto all'oggetto BASE
float raggio = 39.35;  //distanza oggetto slincato dal centro BASE
 
 
 
default
{
    state_entry()
    {
       llSetTimerEvent(0.1); // controlla ogni secondo se la BASE madre viene spostato e comunica la nuova posizione all'oggetto slinkato
    }
 
        timer()
    {
        vector v=llVecNorm(llRot2Left(llGetRot())); // torna il vettore unitario dell’oggetto lungo l’asse Y che in SL è il vettore “a sinistra”
        vector u=llVecNorm(llRot2Fwd(llGetRot())); // torna il vettore unitario dell’oggetto lungo l’asse X che in SL è il “forward” cioè il fronte dell’oggetto
        vector center = llGetPos();
  
        float rad=DEG_TO_RAD*angle;
        vector pos=raggio*llCos(rad)*u-raggio*llSin(rad)*(v)+center;
 
         pos.z = pos.z + altezza;
 
 
           llRegionSay(-476587, (string) pos);
    }
}
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎