Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision Les deux révisions suivantes
fr:conception:nova-online [2016/04/25 14:39]
apeiron
fr:conception:nova-online [2016/04/25 14:41]
apeiron
Ligne 1: Ligne 1:
-//Cet article est dans la continuité de mon article de vulgarisation sur les [[vulgarisation:distance|distances]],​ en particulier le cas p = 2.//+//A faire généalogie du projet...//
  
-Contrairement à $d_1$ et surtout $d_\infty$ qui se prêtent bien aux grilles, $d_2$ est certes plus naturelle mais posera problème pour une implémentation dans un jeu comme Nova.+====== Distance ======
  
-====== Le problème ​======+//Cette section est dans la continuité de mon article de vulgarisation sur les [[fr:​vulgarisation:​distance|distances]],​ en particulier le cas p 2.// 
 + 
 +Contrairement à $d_1$ et surtout $d_\infty$ qui se prêtent bien aux grilles, $d_2$ est certes plus naturelle mais posera ​problème ​pour une implémentation dans un jeu comme Nova.
  
 Nous avons un vaisseau situé au centre d'une case et nous voulons afficher toutes les cases à portée de saut, c'est à dire situées à une certaine distance du centre de la case (prenons 6 pour le moment). La question revient plus ou moins à décider si on va arrondir $d_2(A,B) = \sqrt{(x_A - x_B)^2 + (y_A - y_B)^2}$ au supérieur ou à l'​inférieur. Par exemple, en jouant avec [[https://​donatstudios.com/​PixelCircleGenerator|ce site]] vous vous apercevrez que l'​auteur a choisi d'​arrondir au supérieur : Nous avons un vaisseau situé au centre d'une case et nous voulons afficher toutes les cases à portée de saut, c'est à dire situées à une certaine distance du centre de la case (prenons 6 pour le moment). La question revient plus ou moins à décider si on va arrondir $d_2(A,B) = \sqrt{(x_A - x_B)^2 + (y_A - y_B)^2}$ au supérieur ou à l'​inférieur. Par exemple, en jouant avec [[https://​donatstudios.com/​PixelCircleGenerator|ce site]] vous vous apercevrez que l'​auteur a choisi d'​arrondir au supérieur :
Ligne 20: Ligne 22:
  
 À ce stade, force est de constater que la solution mathématiquement juste est encore plus hideuse que l'​autre,​ surtout les cases toutes seules au nord, au sud, à l'est et à l'​ouest. Comme dans [[nova|Nova]] nous nous intéresserons à de petites ($s \le 10$) valeurs de saut, nous pouvons envisager d'​utiliser plutôt la condition $\sqrt{x^2 +y^2} \le s + \epsilon$, où $\epsilon$ est petit et à régler au jugé. Avec $\epsilon = 0$ nous retrouvons la solution mathématiquement juste, et avec $\epsilon = 0.5$ nous retrouvons la solution du site susnommé. Il ne reste qu'à prendre une valeur satisfaisante sur le plan esthétique... À ce stade, force est de constater que la solution mathématiquement juste est encore plus hideuse que l'​autre,​ surtout les cases toutes seules au nord, au sud, à l'est et à l'​ouest. Comme dans [[nova|Nova]] nous nous intéresserons à de petites ($s \le 10$) valeurs de saut, nous pouvons envisager d'​utiliser plutôt la condition $\sqrt{x^2 +y^2} \le s + \epsilon$, où $\epsilon$ est petit et à régler au jugé. Avec $\epsilon = 0$ nous retrouvons la solution mathématiquement juste, et avec $\epsilon = 0.5$ nous retrouvons la solution du site susnommé. Il ne reste qu'à prendre une valeur satisfaisante sur le plan esthétique...
- 
-====== Le programme ====== 
  
 Après réflexion, je suis en fait parti sur $\sqrt{x^2 + y^2} \le \sqrt{s^2 + \delta}$ au lieu de $\sqrt{x^2 + y^2} \le s + \epsilon$, car quand $s$ devient grand l'​erreur devient négligeable au carré au lieu de juste négligeable. Il ne reste qu'à fixer $\delta$ de façon à ce que le dessin soit satisfaisant pour les premières valeurs. Après test $\delta = 1$ est suffisant. J'​obtiens donc la condition $x^2 + y^2 \le s^2 + 1$ qui est assez simple à calculer. De plus, cela m'a aidé à faire des tests, vu que $\LaTeX$ est quand même plus à l'aise avec les entiers. Après réflexion, je suis en fait parti sur $\sqrt{x^2 + y^2} \le \sqrt{s^2 + \delta}$ au lieu de $\sqrt{x^2 + y^2} \le s + \epsilon$, car quand $s$ devient grand l'​erreur devient négligeable au carré au lieu de juste négligeable. Il ne reste qu'à fixer $\delta$ de façon à ce que le dessin soit satisfaisant pour les premières valeurs. Après test $\delta = 1$ est suffisant. J'​obtiens donc la condition $x^2 + y^2 \le s^2 + 1$ qui est assez simple à calculer. De plus, cela m'a aidé à faire des tests, vu que $\LaTeX$ est quand même plus à l'aise avec les entiers.