Besoin d'un cerveau fonctionnel en math

Voir le sujet précédent Voir le sujet suivant Aller en bas

Besoin d'un cerveau fonctionnel en math

Message  norback le Mer 11 Jan 2012 - 20:41

Bon, voilà j'ai un petit soucis.
Un soucis de mathématiques.
Niveau 3°... :-|

Pour un projet en construction concernant la cartographie du serveur, j'ai utilisé cette fonction pour traduire des coordonnées minecraft en coordonnées compatibles avec mon système de carto.
Code:
function convert_mc_to_map($x,$y)
{
   $x=intval($x);
   $y=intval($y);

   $angle=deg2rad(225);
   $coef=2.84;

   $y*=-1;
   
   $new_x=round((cos($angle)*$x)-(sin($angle)*$y));
   $new_y=round((sin($angle)*$x)+(cos($angle)*$y));

   $new_y*=0.5;

   $new_x*=$coef;
   $new_y*=$coef;

   $new_x+=$GLOBALS['maps_infos'][$_GET['id_map']]['x'];
   $new_y+=$GLOBALS['maps_infos'][$_GET['id_map']]['y'];

   return $new_x.','.$new_y;
}
Maintenant, le soucis, c'est que j'aimerai faire l'inverse. Rien de bien sorcier, sauf que...
Code:
function convert_mc_to_map($x,$y)
{
   $x=intval($x);
   $y=intval($y);

   $angle=deg2rad(225);
   $coef=2.84;
      
   $x-=$GLOBALS['maps_infos'][$_GET['id_map']]['x'];
   $y-=$GLOBALS['maps_infos'][$_GET['id_map']]['y'];
   
   $x/=$coef;
   $y/=$coef;
   
   $y/=0.5;
   
   $new_x=???;
   $new_y=???;

   $new_y/=-1;

   return $new_x.','.$new_y;
}
Je coince sur l'inverse des fonctions avec des cos et des sin. C'est tout bête, c'est juste un système d'équation à deux inconnus, mais je n'arrive pas à trouver un résultat qui me satisfais. J'ai bien un truc qui marche presque, mais le soucis c'est ce "presque" qui est une erreur de grosso modo 1 à 2% sur l'une des coordonnées (alors que l’autre tombe extrêmement proche du résultat attendu).

Donc si quelqu'un a le talent pour me résoudre ce petit soucis, ca serait super!

Voici l'équation mieux formulé où le but du jeu est simplement de me fournir les formules pour calculer X et Y:
Code:
c=a*X-b*Y
d=b*X+a*Y

Merci d'avance pour vote temps de cerveau disponible! ;-)
avatar
norback

Messages : 3924
Age : 32

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Mortumee le Mer 11 Jan 2012 - 21:09

C'est pas avec les Arcsin et Cosin pour ton passage en sens inverse ?

Car là j'ai fais ton système, et ça me parait effroyablement complexe comme solution vu la simplicité des équations de base :S

Code:

X = (c/a)+(a*b*d-c*b²)/(a²+b²)
Y = (a*d-b*c)/(a²+b²)
Flemme d'aller vérifier le résultat par logiciel, j'ai plus mathématica ni mapple sur le pc t'façon. :O
avatar
Mortumee

Messages : 2789
Age : 28

Profil
Rôle: Cartésien désabusé, Serviteur de Cthulhu

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  norback le Mer 11 Jan 2012 - 21:54

Bonne nouvelle, ton Y est le même que le mien par contre, ton X est loin, très loin.

Avec mes chiffres de test, voilà ce que j’obtiens
X : 52889 au lieu de 20237 => 32652 blocs d’écart :-S
Y : 19021 au lieu de 18890 => 131 blocs d'écart, ce qui est presque acceptable

Perso, j'obtiens pour X 20418 au lieu de 20237, mais la nuance est tellement énorme en bloc minecraft (181 blocs) que cette précision de calcul est insuffisante... :'(

Enfin bon, rien de dramatique, ce n'est pas une nécessité cette fonction, c'est juste du bonus/simplification pour le module de cartographie à venir. :teasing:
avatar
norback

Messages : 3924
Age : 32

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Ghomerr le Mer 11 Jan 2012 - 23:32

De mon côté j'ai ça:

x = (db + ca)/(a² + b²)
y = (ad - bc)/(a² + b²)

_________________
avatar
Ghomerr

Messages : 3742
Age : 29

Profil
Rôle: Chronomètre rétrograde

http://www.youtube.com/user/Ghomerr6

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Mortumee le Jeu 12 Jan 2012 - 0:01

Cerveau qui tourne au ralenti en ce moment, j'ai dit que le résultat ma paraissait bizarre vu qu'il est étrangement compliqué. :P
Celle que Ghomerr est déjà plus "belle" ^^
avatar
Mortumee

Messages : 2789
Age : 28

Profil
Rôle: Cartésien désabusé, Serviteur de Cthulhu

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  norback le Jeu 12 Jan 2012 - 10:26

Bon, bah les résultats des équations de ghommer sont les mêmes que les miens (sauf que ses équations sont bien plus propres que les miennes :-D).
Malheureusement, la marge d'erreur est bien trop grande donc je vois pas trop comment m'en sortir.
Si quelqu'un à une illumination pour obtenir des chiffres plus cohérents, qu'il n'hésite pas à m'en faire part! ;-)

En tout cas, merci à vous deux pour votre aide. :up:
avatar
norback

Messages : 3924
Age : 32

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Ghomerr le Jeu 12 Jan 2012 - 20:49

Est-ce qu'avec de petites valeurs, tu trouves des résultats aussi peu cohérents ? Est-ce que cela ne viendrait-il pas des fonctions d'arrondis ou des cosinus/sinus qui feraient des approximations, qui, avec de grands nombres, donneraient des valeurs assez éloignées ?

J'essaie de comprendre ton algorithme mais j'ai un peu de mal, donc je ne sais pas si je peux faire beaucoup plus pour t'aider sur cette voie.

_________________
avatar
Ghomerr

Messages : 3742
Age : 29

Profil
Rôle: Chronomètre rétrograde

http://www.youtube.com/user/Ghomerr6

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Warzouz le Jeu 12 Jan 2012 - 20:52

Je comprends pas bien pourquoi tu as besoin de sin et cos. Comme c'est une vue isométrique, c'est inutile, normalement. C'est l'intérêt de la vue isométrique. La transformation ne se fait qu'avec des fonctions simples.

Dans MapGuide (pas la version que vous avez) j'ai un système de transformation de ce type. Ca ne marche pas trop mal, sans utiliser sin et cos.

_________________
Réfléchir, c'est déjà désobéir
avatar
Warzouz

Messages : 5852
Age : 45

Profil
Rôle: Déménageur nihiliste

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  norback le Jeu 12 Jan 2012 - 23:05

La première fonction est celle qui permet de convertir les coordonnées minecraft en coordonnées compatible avec ma map. Donc si t'as plus simple et compatible avec de grande valeur, je veux bien tester avec.

@Ghommer: Sur la map de rodville, avec les petites coordonnées, ca marche très bien. Le soucis est que new rodville se situe dans une zone avec des grandes coordonnées. Le soucis doit clairement venir des arrondis qui ne sont pas juste (et j'ai bien l'impression que je ne peux malheureusement pas choisir la précision du cos/sin en PHP).
avatar
norback

Messages : 3924
Age : 32

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Mortumee le Ven 13 Jan 2012 - 2:13

Et en appliquant un changement de repère pour qu'il considère la place comme étant le 0,0, tu te ramène à des petits nombres, plus faciles à gérer, et moins sensibles aux approximations ?
avatar
Mortumee

Messages : 2789
Age : 28

Profil
Rôle: Cartésien désabusé, Serviteur de Cthulhu

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Warzouz le Ven 13 Jan 2012 - 8:22

Mortu a raison.

_________________
Réfléchir, c'est déjà désobéir
avatar
Warzouz

Messages : 5852
Age : 45

Profil
Rôle: Déménageur nihiliste

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  norback le Ven 13 Jan 2012 - 11:19

Le truc, c'est que il sait très bien gérer les coordonnées minecraft genre 20000/20000 pour les afficher sur la map isométrique.
Mon soucis, c'est que j'aimerai pouvoir gérer des zones (comme lors de la purge), hors aller faire de relever de coordonnées en jeu, c'est long et fastidieux. Donc je voulais mettre au point un système permettant de chopper directement les coordonnées sur la map et de les passer dans un convertisseur pour qu'il me sorte les coordonnées minecraft.

Je vais voir ce que j'peux faire avec cette idée de mettre les coordonées de la place en 0,0, de faire mes calculs à partir de cette idée et, une fois le résultat obtenu, rajouter la différence avec les vrais coordonnées de la place.
avatar
norback

Messages : 3924
Age : 32

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Re: Besoin d'un cerveau fonctionnel en math

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum