J'essaie de faire en sorte que, peu importe à quelle distance deux objets sont, ils resteront à l'écran. J'utilise JOGL, mais cela ne devrait pas avoir d'importance car j'ai juste besoin d'aide pour les maths. Voilà ce que j'ai jusqu'à présent:Caméra 3D Zoom et suivre la physique en Java?
float distance = (float) ((Math.sqrt((p1.x - p2.x) + (p1.y - p2.y))));
float camx = (float)((p1.x + p2.x) * 0.5);
float camy = (float)((p1.y + p2.y) * 0.5);
float camz = (float) (distance * 5);
Qu'est-ce que les mathématiques que j'ai besoin de sorte que le Z effectue un zoom avant et correctement?
Je vous suggère d'utiliser double au lieu de float. float ne vous épargnera pas beaucoup de mémoire, mais il ajoute de la complexité à vos calculs. –
@Peter: Quelle complexité ajoute-t-elle? (Je suis d'accord, cependant, «double» est généralement préférable pour le gain de précision quasi-gratuit.) –
@Tomalak, Vous me testez là-bas comme j'ai fait le commentaire il y a presque un an. ;) Dans cet exemple, j'ai supposé qu'il y avait un besoin de lancer, mais en le regardant maintenant, il semble qu'ils soient tous redondants, alors changer en double ne fera peut-être aucune différence. –