Dette er såmen ikke specielt OpenGL relateret men det skal bruges til et
OpenGL projekt og min matematik er ikke hvad den har været (eller også er
det blevet for sent på aftenen)!
I OpenGL er midterpunktet 0,0 (x,y) og så skal man gå en relativ værdi ud
fra det for at positionére sig (enten + eller -). Jeg skal have lavet en
typisk stjernehimmel med f.eks. 100 prikker på og jeg havde tænkt, at læse
disse 100 random værdier ind i et array og så holde styr på dem dér. Men...
Jeg har denne kode:
int RANGE_MIN;
int RANGE_MAX;
int i = 0;
float x = 0.0f;
float y = 0.0f;
for (int c=0; c<=100; c++)
{
// Get X axis
RANGE_MIN = 0;
RANGE_MAX = 5300;
i = (((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
x = (double)i / (double)1000;
// Get Y axis
RANGE_MIN = 0;
RANGE_MAX = 4000;
i = (((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
y = (double)i / (double)1000;
glVertex3f(x, y, 0.0f);
}
[CUT]
Dette giver 100 tilfældige tal mellem 0.0 og +4.0 (X) samt 0.0 og +5.3 (Y).
Men hvordan er det nu lige, at jeg får lavet tallet om til minus således, at
jeg kan få vist noget i minus koordinaterne? Jeg kan jo ikke bare have
RANGE_MIN til -4000, da slutresultatet så kun er negativt.
Eller er der andre måder at gøre det på (det er der hélt sikkert)?
Meningen er så at få det ind i et array og derfor få stjernerne til at køre
med forskellig hastighed hen over himlen.