Discussione: Proporzioni
View Single Post
Old 01-09-2005, 11:42   #3
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
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!!!)
okay è offline   Rispondi citando il messaggio o parte di esso