Rodwin.fr
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

Besoin d'un cerveau fonctionnel en math

4 participants

Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Besoin d'un cerveau fonctionnel en math

Message  norback 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! ;-)
norback
norback

Messages : 3924
Age : 39

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Mortumee 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
Mortumee
Mortumee

Messages : 2805
Age : 35

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

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  norback 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:
norback
norback

Messages : 3924
Age : 39

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Ghomerr Mer 11 Jan 2012 - 23:32

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

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

Messages : 3742
Age : 36

Profil
Rôle: Chronomètre rétrograde

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

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Mortumee 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" ^^
Mortumee
Mortumee

Messages : 2805
Age : 35

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

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  norback 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:
norback
norback

Messages : 3924
Age : 39

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Ghomerr 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.
Ghomerr
Ghomerr

Messages : 3742
Age : 36

Profil
Rôle: Chronomètre rétrograde

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

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Warzouz 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.
Warzouz
Warzouz

Messages : 5919
Age : 52

Profil
Rôle: Déménageur nihiliste

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  norback 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).
norback
norback

Messages : 3924
Age : 39

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Mortumee 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 ?
Mortumee
Mortumee

Messages : 2805
Age : 35

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

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Warzouz Ven 13 Jan 2012 - 8:22

Mortu a raison.
Warzouz
Warzouz

Messages : 5919
Age : 52

Profil
Rôle: Déménageur nihiliste

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  norback 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.
norback
norback

Messages : 3924
Age : 39

Profil
Rôle: Incinérateur des masses

Revenir en haut Aller en bas

Besoin d'un cerveau fonctionnel en math Empty Re: Besoin d'un cerveau fonctionnel en math

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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