// 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
0 B
|👍
/👎
0 B
|👍
/👎