|
ciao repne scasb........tx
sto facendo una simulazione e tutto gira sui tempi per metterti sulla strada giusta per aiutarmi allora ti devo dire anche questo e fornirti i dati da te richiesti:
Ho una spline.x (linea) che è formata da tot vertici tra un vertice e l'altro ho la lunghezza del vettore ora sommando tutti i vettori io ottengo totpath che è la lunghezza del circuito/percorso.
Muovo una sfera/e sulla spline.x (linea) che identifica il circuito/percorso con la formula scritta sotto trovo la velocità media a cui deve andare la sfera per compiere un giro in un tot tempo ed è perfetto la sfera compie un giro completo per esempio in 1.39.456 un min 39 sec. e 456 milles
ecco:
pObject[0].VelMedia[i] = TotPath /(60*pObject[0].Tm[i]+pObject[0].Ts[i]+pObject[0].Tl[i]/1000.0); //*3.6
Ad ogni giro assegno i tempi alla sfera in modo random che oscillano tra 1.41.234 e 1.38.234
pObject[0].VelMedia[i] quindi è la velocità media e suo valore oscilla tra 26.33 e 27.33 per compiere un giro completo nel tempo stabilito che è 1.39.456 come puoi vedere dal commento non calcolo *3.6 perchè totpath naturalmente non è in m/s.
Ora (ed è quello che devo rapportare) mi hanno passato le velocità reali in cui la sfera deve avere un andatura media da tratto a tratto che sono in km/h:
TRATTI_VEL[0]=160.0f;
TRATTI_VEL[1]=165.0f;
TRATTI_VEL[2]=75.0f;
TRATTI_VEL[3]=135.5f;
TRATTI_VEL[4]=170.0f;
TRATTI_VEL[5]=225.0f;
TRATTI_VEL[6]=276.0f;
TRATTI_VEL[7]=160.0f;
TRATTI_VEL[8]=170.0f;
TRATTI_VEL[9]=180.0f;
TRATTI_VEL[10]=330.0f;
ecco questi sono le velocità che in questi tratti la sfera deve andare (il motivo sono le curve ecc,ecc) per esmpio nel tratto [0] la sfera deve andare ad una velocità di 160 km/h infatti nel tratto TRATTI_VEL[10]=330.0f; la sfera và a 330 km/h come passa al tratto TRATTI_VEL[0]=160.0f; io faccio questo:
pAI->Agg=(pAI->VelMedia[pAI->GiriTotali]*TRATTI_VEL[10])/pAI->MediaMarce/3.6;
if(pAI->Vel>pAI->Agg)
pAI->Vel-=0.1;
if(pAI->Vel<pAI->Agg)
pAI->Vel+=0.0036;
in questo caso dato che andava a 330 km/h ne diminuisco la velocità fino ad assestarla sui 160 km/h
il mio problema è che funziona ma non faccio più il giro nel tempo stabilito in pratica il tempo che impiega è molto minore invece di girare in 1.38.234 mi gira in 1.30.234.
ho la vaga sensazione che il problema sia quì
if(pAI->Vel>pAI->Agg)
pAI->Vel-=0.1;
if(pAI->Vel<pAI->Agg)
pAI->Vel+=0.0036;
0.1; e 0.0036; sono valori che vanno bene se faccio girare la sfera solo e sempre alla velocità media (cosa che non và bene in quanto un oggetto non può fare curve sempre a 180 km/h)
come invece faccio questo rapporto:
pAI->Agg=(pAI->VelMedia[pAI->GiriTotali]*TRATTI_VEL[10])/pAI->MediaMarce/3.6;
//ovvero (27*330)/(27*3.6)
non riesco a fare il giro nel tempo stabilito
spero di essere stato chiaro (spero!!!)
|