Je travaille actuellement sur un projet pour l'école où je dois faire une sphère où je dois Map ~ 5000 images dessusJe veux cartographier un tas d'avions sur une sphère cela fonctionne mais avec quelques bugs inattendus
J'ai ici une projection plane de ce que je veux carte
et ici j'ai un modèle sphérique de celui-ci
J'utilise Three.js, et de la projection principe mercator mais vous pouvez voir les images tournent et je ne sais pas comment résoudre ce problème.
Et je cherchais depuis un certain temps et je ne trouve rien
Et voici le code que j'utilise pour placer toutes mes images
drawMeridianCells(scene,rayon)
{
var startCollPos = 5;
var currentCounter = 0;
var currentRow = 0;
var counter = 0;
let cell = new Array(this._totalCells);
var rows = [4,3,4,4,6,6,6,6,4,4,3,4];
var col = [2,4,6,8,10,12,12,10,8,6,4,2];
var res = Number(col[counter]) * Number(rows[counter]) ;
var currentIndex = 0;
var north = true;
for(var i = 0; i < this._totalCells; i++)
{
if(currentCounter >= col[counter])
{
currentRow++;
currentCounter = 0;
}
if(currentIndex >= res)
{
counter++;
res = Number(col[counter]) * Number(rows[counter]) ;
currentIndex = 0;
if(north)
startCollPos--;
else
startCollPos++;
if(startCollPos < 0)
{
startCollPos =0;
north = false;
}
}
//spherical W/ mercator projection
//https://stackoverflow.com/questions/12732590/how-map-2d-grid-points-x-y-onto-sphere-as-3d-points-x-y-z
var long = (this._posX +(currentCounter+startCollPos) * (this._celW+2))/rayon;
var lat = 2*Math.atan(Math.exp( (this._posY + (currentRow) * (this._celH*2))/rayon)) - Math.PI/2;
var _x = rayon* (Math.cos(lat) * Math.cos(long)) ;
var _y = rayon* (Math.cos(lat) * Math.sin(long));
var _z = rayon* (Math.sin(lat));
cell[i] = new Square(new Point(_x,_y,_z),
this._celW ,
this._celH );
//flat
/*cell[i] = new Square( new Point((this._posX +(currentCounter+startCollPos) * (this._celW)),
(this._posY + (currentRow) * (this._celH)),0),
this._celW,
this._celH );*/
cell[i].drawSquare(scene,Math.random() *0xffffff);
cell[i].lookAtZero();
currentCounter++;
currentIndex++;
}
}
J'espère avoir été assez clair
Avez-vous mélangé la latitude et la longitude? – Rabbid76
J'essaye beaucoup de différentes formules pour voir quel est le problème mais ensuite ça ne changera rien, et la dernière chose que vous avez posté à propos de blilboards semble être bonne mais un peu lourde en calcul pour 5000 avions. –
Je ne comprends pas la question. Que veux-tu accomplir. Voulez-vous que les quads soient orientés selon la latitude et la longitude? Ou voulez-vous que les quads affrontent la fenêtre d'affichage (comme [Billboards] (http://www.opengl-tutorial.org/intermediate-tutorials/billboards-particles/billboards/))? – Rabbid76