J'essaie de faire un modèle de base du système solaire dans Direct X. Je veux que les planètes orbitent autour du soleil et que la lune orbitent autour des planètes. J'ai donc la planète/étoile/lune qui prend un pointeur vers son vecteur de position parent. À partir de là, comment serais-je en mesure de faire l'orbite de l'objet à une vitesse définie? Ainsi, par exemple, la lune aurait un pointeur sur le vecteur de position de la Terre et une distance pour rester à l'écart de la Terre. J'aurais besoin de la lune pour orbiter autour de la terre pendant 24 heures (ou n'importe quelle période, je suis sûr que je serais capable d'ajuster cela moi-même). De même, la terre aurait un pointeur vers la position du soleil et tournerait autour de cela pendant 365 jours. Je ne sais tout simplement pas comment travailler sur la position orbitale.DirectX ayant une sphère en orbite un point à une distance donnée, au fil du temps
Répondre
Essayez ce fil pour les idées:
Making an object orbit a fixed point in directx?
En aparté: Soyez averti le matériel graphique utilise des flotteurs de simple précision. En fonction des échelles concernées, vous trouverez peut-être que vous manquez de précision assez rapidement sur quelque chose de l'échelle du système solaire. Si cela se produit, n'oubliez pas que vous pouvez trier les groupes d'objets par z, puis les restituer sur une grande distance, mais avec une précision Z, locale et complète. Vous devez ensuite effacer le Z0buffer et faire suivre le groupe local suivant.
Merci. J'avais remarqué ce sujet mais j'étais confus sur la façon de le modifier pour une position qui n'était pas 0,0,0. Je ne peux pas m'expliquer dans ce code, mais je suis sûr que je le comprendrai et je posterai ici ce que je vais arriver. – Jacob
Le point entier avec mon exemple était que l'objet n'était pas à l'origine btw. Son mouvement à sa distance du centre et ensuite tourné autour du centre. – Goz