#1 

30-06-2009 14:54:29

Manawenuz
Membres
Date d'inscription:
Messages: 8
IP: 129.104.247.2
Courriel

Bonjour,

Encore un message d'appel au secours:) (qu'est-ce que je suis content d'avoir trouvé ce forum)
J'aimerais pouvoir passer en argument à la méthode setPosition de ma caméra un core::vector3d<double>, alors qu'elle ne prend que des vector3df...
(Et j'ai vraiment besoin de ça parce que je représente le système solaire et des satellites artificiels; c'est la différence entre les 2 échelles qui rend ça nécessaire)

Que faire? (parce qu'évidemment j'ai une erreur de compilation)


Hors ligne


#2 

30-06-2009 17:18:44

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 92.136.78.41
Courriel  Site web

J'en vois pas vraiment l'interret mais t'a cas caster à la bourrin :
core::vector3df((f32)MonDouble,(f32)MonDouble,(f32)MonDouble)


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#3 

30-06-2009 21:22:50

Manawenuz
Membres
Date d'inscription:
Messages: 8
IP: 129.104.247.2
Courriel

Mouais... Bourrin! merci


Hors ligne


#4 

01-07-2009 21:15:43

Manawenuz
Membres
Date d'inscription:
Messages: 8
IP: 93.3.122.109
Courriel

En fait ca ne me va pas du tout... Je m'explique:
Le type f32 d'Irrlicht (qui est utilisé pour core::vector3df) ne garde que les 7 premiers chiffres exacts après un cast depuis un double. En effet, le code suivant:

#include <math.h>

int main() {
    double pi = acos(-1.0);
    printf("pi (double) = %.20f\
", pi);
    printf("pi (f32)      = %.20f\
", (f32)pi);
}

le résultat est:
pi (double) = 3.14159265358979311600
pi (f32)    = 3.14159274101257324219

le premier résultat est en effet exact pour les 16 premières décimales. Le deuxième, seulement... 7 (comme annoncé). Et pour mes calculs (astronomiques, au sens propre), j'ai des distances (terre-soleil, par exemple) de 150 000 000 000 de mètres. Donc Irrlicht ne gardant que les 7 premiers exacts, j'ai une incertitude pour ma caméra de ... (roulements de tambour) ... 10km ! Pratique quand on veut suivre un satellite artificiel comme la station internationale ! Alors que mon type double tiendrait bien dans mes exigences.

Donc voilà. J'ai vraiment besoin d'aide, sinon je vais être obligé d'oublier tout ce que j'ai appris pour me servir d'Irrlicht, et de choisir un autre moteur 3D...

Edit: notez que le prototype de acos dans math.h est
extern double  acos( double );

donc pas de cast pour la première valeur de pi.


Hors ligne


#5 

02-07-2009 17:30:46

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 92.134.93.127
Courriel  Site web

Oué bon si justement t'a appris des choses, dire que tu vas changer de moteur 3D pour ça, c'est un peu ridicule. T'a cas te faire ta propre structure de vecteur 3D et puis basta...


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#6 

02-07-2009 18:09:22

Manawenuz
Membres
Date d'inscription:
Messages: 8
IP: 93.3.122.109
Courriel

Mon dernier post servait à prouver qu'une structure de données perso pour mes vecteurs 3D ne suffisait pas...
Mais je vais m'accrocher


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
165 invités en ligne
membre en ligne: -
RSS Feed