Centre de Formation Flash - Forums Adobe Flash: probléme de maths ... - Centre de Formation Flash - Forums Adobe Flash

Voir le contenu

Page 1 sur 1
  • Vous ne pouvez pas créer de sujet
  • Vous ne pouvez pas répondre au sujet

probléme de maths ...

#1 Utilisateur non-connecté   petepx

  • Ceinture Marron
  • Groupe : Honoris
  • Messages : 351
  • Inscrit : 16-June 03

Posté 01 October 2003 - 07:34 PM

Salut smile.gif

Je cherche à faire une fonction avec quatre paramètres en entrée : calcul(tx ,ty, x, y)

Celle-ci doit me renvoyer en sortie la valeur qui se trouve aux coordonnées x,y de ma matrice qui mesure tx en abscisse et ty en ordonnée.

Le système d'affectation des valeurs à l'intérieur de ma matrice est pas facile à expliquer, pour faire simple, ca ressemble à un remplissage en diagonales de gauche à droite.
Un dessin vaut mieux qu'une longue explication souvent :

ex1 : 1 tx = 3 ty = 3

1 3 6
2 5 8
4 7 9


ex2 : tx = 3 ty = 2

1 3 5
2 4 6


ex3 : tx = 2 ty = 2

1 3
2 5
4 6

D'autres exemples en images :
http://www.artepictl...xempleGrid1.swf
http://www.artepictl...xempleGrid2.swf
http://www.artepictl...xempleGrid3.swf

Merci d'avance à l'heureux bienfaiteur qui saura me montrer la lumière biggrin.gif
0

#2 Utilisateur non-connecté   LAlex

  • techno rêveur
  • Groupe : Honoris
  • Messages : 3326
  • Inscrit : 15-July 02
  • Location:Paris
  • Interests:Internet
  • Version logiciel:Flash CS3
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 08:46 AM

J'ai vu ca sur ton blog ! biggrin.gif
Je vais me pencher sur la question ... wink.gif

A+ wink.gif
"L'humilité c'est le top de la frime" - Didier SUPER
[ Développeur freelance AS3 - LAlex devblog ]
0

#3 Utilisateur non-connecté   ekameleon

  • Habitué
  • Groupe : Formateur Mediabox
  • Messages : 20168
  • Inscrit : 10-May 02
  • Gender:Male
  • Location:Marseille
  • Interests:ECMAScript, ActionScript, Arts Martiaux, Manga, dessin, snake
  • Version logiciel:FDT 3.2
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 08:58 AM

Hello smile.gif
Tu as pas une logique mathématiques pour appuyer la réflexion ? smile.gif
tu comptes faire quoi au bout du compte ? smile.gif
bye smile.gif
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions (Confucius)

Pour tous vos projets AS3 , AS2, JSDB et FMS essayez mon framework Opensource :

Site officiel du projet
Documentation sur le wiki de mediabox
0

#4 Utilisateur non-connecté   LAlex

  • techno rêveur
  • Groupe : Honoris
  • Messages : 3326
  • Inscrit : 15-July 02
  • Location:Paris
  • Interests:Internet
  • Version logiciel:Flash CS3
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 10:07 AM

Bon, sur ton blog les < et > empechent d'afficher le code sad.gif, donc je te le mets la. 8)
Comme deja dit, c'est une fonction recursive, mais je suis persuadé qu'on peut faire du non-recursif, donc je continue à chercher !!! smile.gif
CODE
function recCalcul(tx:Number, ty:Number, x:Number,y:Number):Number {

if (x < tx && y < ty) {

 var ret:Number = 1;

 var cx:Number = x;

 var cy:Number = y;

 if (x == 0) {

  while (cy > 0) {

   ret += Math.min(cy,tx);

   cy--;

  }

 } else if (y == ty-1) {

  ret = Number(arguments.callee.call(this,tx,ty,0,y));

  while (cx > 0) {

   ret += Math.min(tx-cx+1,ty);

   cx--;

  }

 } else {

  ret = Number(arguments.callee.call(this,tx,ty,x-1,y+1))+1;

 }

 return ret;

} else {

 return;

}

}


A+ wink.gif[/code]
"L'humilité c'est le top de la frime" - Didier SUPER
[ Développeur freelance AS3 - LAlex devblog ]
0

#5 Utilisateur non-connecté   ekameleon

  • Habitué
  • Groupe : Formateur Mediabox
  • Messages : 20168
  • Inscrit : 10-May 02
  • Gender:Male
  • Location:Marseille
  • Interests:ECMAScript, ActionScript, Arts Martiaux, Manga, dessin, snake
  • Version logiciel:FDT 3.2
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 10:10 AM

Question la matrice est un tableau nxn ? ou tu passes par un tableau d'objet ?
bye smile.gif
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions (Confucius)

Pour tous vos projets AS3 , AS2, JSDB et FMS essayez mon framework Opensource :

Site officiel du projet
Documentation sur le wiki de mediabox
0

#6 Utilisateur non-connecté   LAlex

  • techno rêveur
  • Groupe : Honoris
  • Messages : 3326
  • Inscrit : 15-July 02
  • Location:Paris
  • Interests:Internet
  • Version logiciel:Flash CS3
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 12:10 PM

Ca y est, j'ai trouvé une solution non recursive !!! :youpi:

Il m'aura donné du mal c'uila !!! :mrgreen:

CODE
function calcul(tx,ty,x,y) {

if (x < tx && y < ty) {

 var ret = 1;

 var delta = 0;

 var diag:Number = x+y;

 if (x == 0) {

  var cy = y;

  while (cy > 0) {

   delta += Math.min(cy,tx);

   cy--;

  }

 } else {

  var cx = x+y;

  while (cx > 0) {

   delta += Math.min(cx,tx);

   cx--;

  }

  delta += x;

  if (diag >= ty) {

   var cy = ty;

   while (cy <= diag) {

    delta -= diag-cy+1;

    cy++;

   }

  }

 }

 ret += delta;

 return ret;

} else {

 return;

}

}

"L'humilité c'est le top de la frime" - Didier SUPER
[ Développeur freelance AS3 - LAlex devblog ]
0

#7 Utilisateur non-connecté   petepx

  • Ceinture Marron
  • Groupe : Honoris
  • Messages : 351
  • Inscrit : 16-June 03

Posté 02 October 2003 - 12:43 PM

Bravo champion ! smile.gif
0

#8 Utilisateur non-connecté   petepx

  • Ceinture Marron
  • Groupe : Honoris
  • Messages : 351
  • Inscrit : 16-June 03

Posté 02 October 2003 - 12:47 PM

Voici la solution de grav et Jean-Louis :

CODE
function go(x, y, tXMax, tYMax) {

       var n = x + y - 1;

       var s = n * (1 + n) / 2;

       var s1 = 0;

       var s2 = 0;

       var m = n - tXMax;

       s1 = (m > 0) ? m * (m + 1) / 2 : s1;

       m = n - tYMax;

       s2 = (m > 0) ? m * (m + 1) / 2 : s2;

       s = s - s1 - s2;

       var temp = n - tYMax > 0 ? n - tYMax : 0;

       temp = s - x + 1 + temp;

       return temp;

}

[/code]
0

#9 Utilisateur non-connecté   LAlex

  • techno rêveur
  • Groupe : Honoris
  • Messages : 3326
  • Inscrit : 15-July 02
  • Location:Paris
  • Interests:Internet
  • Version logiciel:Flash CS3
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 02:15 PM

C'est énorme leur solution ! 8O Je suis allé sur flash-france leur demander le raisonnement de l'algo parce que là j'ai du mal ... :?

A+ wink.gif

PS : Si t'en a d'autres comme ca, n'hésites pas, c'est génial de chercher (enfin, surtout de trouver) des algos comme ca !!! :mrgreen:
"L'humilité c'est le top de la frime" - Didier SUPER
[ Développeur freelance AS3 - LAlex devblog ]
0

#10 Utilisateur non-connecté   ekameleon

  • Habitué
  • Groupe : Formateur Mediabox
  • Messages : 20168
  • Inscrit : 10-May 02
  • Gender:Male
  • Location:Marseille
  • Interests:ECMAScript, ActionScript, Arts Martiaux, Manga, dessin, snake
  • Version logiciel:FDT 3.2
  • Compétences: Développeur Actionscript 3.

Posté 02 October 2003 - 02:32 PM

Moi ce qui m'intéresserait c'est de voir la logique mathématiques derrière.. en gros si on peut trouver un site avec des exos mathématiques de ce type pour en construire les algos en AS ?
Je vais faire ma recherche en attendant smile.gif
bye smile.gif
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions (Confucius)

Pour tous vos projets AS3 , AS2, JSDB et FMS essayez mon framework Opensource :

Site officiel du projet
Documentation sur le wiki de mediabox
0

#11 Utilisateur non-connecté   petepx

  • Ceinture Marron
  • Groupe : Honoris
  • Messages : 351
  • Inscrit : 16-June 03

Posté 03 October 2003 - 09:49 PM

Désolé ekameleon, j'avais complétement zappé dans l'empressement tes replies. :oops:

La matrice est un tableau associatifs avec des variables de type Number.
L'objectif final est de pouvoir gérer le Z-Sorting dans un univers isométrique mieux que le fait Jobe Makar et consorts... smile.gif

Voila, et désolé encore ! wink.gif
0

#12 Utilisateur non-connecté   Foxy

  • Habitué
  • Groupe : Membres
  • Messages : 648
  • Inscrit : 26-August 02
  • Location:Paris

Posté 08 June 2004 - 10:45 PM

Désolé de faire ressortir ce vieux thread, j'étais en train d'effectuer des recherches sur le z-sorting et je suis tombé ici. Du coup j'ai eu le malheur de lire et paf, me prendre au jeu !

La version de grav & jean-louis et sérieusement buggée ! (testez avec une map de 9x6, ça déraille, sans compter qu'il faut inverser x & y en params passés + ajouter 1, enfin ...)

La tienne Lalex, marche au poil en tout cas, j'ai pas réussi à la planter, même avec une map de 1x5 par exemple smile.gif

Et voici donc la mienne :

function evalCase(x,y,tx,ty){
var val=((x+y)*(x+y+1))/2+x+1;
if (x+y>ty-1)val-=(((x+y)-(ty-1))*((x+y)-(ty-1)+1))/2;
if (x+y>tx)val-=(((x+y)-(tx))*((x+y)-(tx)+1))/2;
return (val);
}

PS: ça m'a pris 3 heures quand même ! j'adore ! wink.gif
0

#13 Utilisateur non-connecté   fred

  • Machin
  • Groupe : Modérateurs
  • Messages : 3176
  • Inscrit : 01-October 02
  • Gender:Male
  • Location:Paname plage
  • Interests:plus le temps :(
  • Compétences: Non communiqué.

Posté 08 June 2004 - 10:57 PM

lol; on crée une salle "matheux" biggrin.gif
tant que je retrouve mon dodo...
0

#14 Utilisateur non-connecté   Foxy

  • Habitué
  • Groupe : Membres
  • Messages : 648
  • Inscrit : 26-August 02
  • Location:Paris

Posté 08 June 2004 - 11:10 PM

c'est chiant et long mais qu'est-ce-que c'est jouissif quand tu trouves smile.gif
0

#15 Utilisateur non-connecté   petepx

  • Ceinture Marron
  • Groupe : Honoris
  • Messages : 351
  • Inscrit : 16-June 03

Posté 10 June 2004 - 02:04 PM

Bravo, cette methode de calcul est deux fois plus rapide foxy wink.gif
0

#16 Utilisateur non-connecté   liguorien

  • Habitué
  • Groupe : Honoris
  • Messages : 2202
  • Inscrit : 28-March 04
  • Gender:Male
  • Location:Montréal, Canada
  • Interests:développer des environnements multijoueurs
  • Version logiciel:FB3 Pro
  • Compétences: Développeur Actionscript 3.

Posté 10 June 2004 - 02:49 PM

salut smile.gif

je ne suis pas un math-geek wink.gif, mais en regardant la formule, j'ai remarqué quelque chose :

CODE
((x+y)-(ty-1)+1))


pourquoi ne pas juste faire ceci ?
CODE
(x + y - ty)


le +1 et le -1 est inutile non?

merci de m'éclaircir sur ma question smile.gif
0

#17 Utilisateur non-connecté   Foxy

  • Habitué
  • Groupe : Membres
  • Messages : 648
  • Inscrit : 26-August 02
  • Location:Paris

Posté 10 June 2004 - 03:28 PM

oui t'as raison liguorien, j'ai un peu retranscris à la va-vite le raisonnement que j'ai pondu sur brouillon (y'a même un (tx) entre parenthèses smile.gif)

Donc ça peut donner ça en simplifiant un peu les parenthèses:

function evalCase(x,y,tx,ty){
var val=(x+y)*(x+y+1)/2+x+1;
if (x+y>ty-1)val-=(x+y-ty-1)*(x+y-ty)/2;
if (x+y>tx)val-=(x+y-tx)*(x+y-tx+1)/2;
return (val);
}

Y'a peut-être aussi moyen de factoriser mais bon, je suis pas sûr que ce soit vraiment rentable, et sans parenthèses, on perd un peu en lisibilité de code par rapport aux shémas que j'ai couché sur papier ...
0

#18 Utilisateur non-connecté   wuastc

  • Habitué
  • Groupe : Honoris
  • Messages : 2238
  • Inscrit : 27-July 02
  • Gender:Male
  • Location:Strasbourg, Grenoble
  • Compétences: Non communiqué.

Posté 28 August 2004 - 10:18 PM

salut smile.gif

j'ai un petit problème avec ton algo Foxy
CODE
function findDepth (x, y, tx, ty) {

var val = (x + y) * (x + y + 1) / 2 + x + 1;

x + y > ty - 1 ? val -= (x + y - ty - 1) * (x + y - ty) / 2 : null;

x + y > tx ? val -= (x + y - tx) * (x + y - tx + 1) / 2 : null;

return val * 10;

}


ceci ne fonctionne pas correctement :
CODE
// Pas bon

for (var i = 0; i < 2; i++) {

for (var j = 0; j < 2; j++) {

 trace ("x:" + i + " y:" + j + " > " + findDepth (i, j, 2, 2));

}

}
QUOTE
/* sortie :
x:0 y:0 > 10
x:0 y:1 > 20
x:1 y:0 > 30
x:1 y:1 > 50
*/
alors je me suis dis que j'utilisais mal tx et ty, donc j'ai retranché 1 à la largeur et à la hauteur :
CODE
// Bon

for (var i = 0; i < 5; i++) {

for (var j = 0; j < 5; j++) {

 trace ("x:" + i + " y:" + j + " > " + findDepth (i, j, 4, 4));

}

}
et c'est bon, on finit bien à 250 biggrin.gif
par contre ça ne marche que pour une matrice carrée :
CODE
for (var i = 0; i < 5; i++) {

for (var j = 0; j < 6; j++) {

 trace ("x:" + i + " y:" + j + " > " + findDepth (i, j, 5, 6));

}

}
fini à 370 et même avec la decrémentation de tx et ty
CODE
for (var i = 0; i < 5; i++) {

for (var j = 0; j < 6; j++) {

 trace ("x:" + i + " y:" + j + " > " + findDepth (i, j, 4, 5));

}

}
on fini à 290 au lieu de 300 :?

si tu pouvais m'eclairer sur la façon d'utiliser ta fonction,
merci biggrin.gif

ciao smile.gif
0

#19 Utilisateur non-connecté   Foxy

  • Habitué
  • Groupe : Membres
  • Messages : 648
  • Inscrit : 26-August 02
  • Location:Paris

Posté 28 August 2004 - 10:47 PM

Yo wuastc,

en fait dans mon dernier post j'ai voulu simplifier à la va vite, et j'ai commis des erreurs, la formule fonctionnant est en fait :

Action Script



function findDepth (x, y, tx, ty) {
var val = (x + y) * (x + y + 1) / 2 + x + 1;
x + y > ty - 1 ? val -=((x+y-ty+1)*(x+y-ty+2))/2 : null;
x + y > tx ? val -=((x+y-tx)*(x+y-tx+1))/2 : null;
return val;
}


Donc désolé si tu t'es arraché les cheveux par ma faute biggrin.gif

Pour la taille, c'est bien la taille ordinaire qu'il faut indiquer ...5 pour une dimension à 5 colonnes (0 à 4).
0

#20 Utilisateur non-connecté   wuastc

  • Habitué
  • Groupe : Honoris
  • Messages : 2238
  • Inscrit : 27-July 02
  • Gender:Male
  • Location:Strasbourg, Grenoble
  • Compétences: Non communiqué.

Posté 28 August 2004 - 10:59 PM

t'as pas à être désolé, si j'avais regardé un peu plus haut :roll:
en tout cas merci beaucoup ! biggrin.gif

ciao smile.gif
0

#21 Utilisateur non-connecté   seal3

  • Habitué
  • Groupe : Habitués
  • Messages : 1758
  • Inscrit : 19-July 02
  • Location:Marseille
  • Interests:oulaaaaa :-)

Posté 29 August 2004 - 10:08 AM

ben moi je viens juste de decouvrir ce post et je comprend rien à la question initiale (les liens marchent plus) et rien aux reponses, à quoi ça sert ? :oops:


Faites pareil en php avec YSServer (serveur de socket) sur your-socket
0

#22 Utilisateur non-connecté   Aggelos

  • Gardien du maillet brise-rotules
  • Groupe : Honoris
  • Messages : 3472
  • Inscrit : 11-April 04
  • Gender:Male
  • Location:Paris la Défense, parfois Grenoble
  • Interests:ecrire des contes philosophiques, philosopher, parler lettres, débattre sur les comportements humains,faire du théatre classique, du théatre d'impro, tu théatre expérimental,jouer aux jeux de roles, parfois (plus rarement) à des jeux vidéo,l'aikido, les mangas et animes, la culture japonaise en général
  • Version logiciel:ZORN !
  • Compétences: Non communiqué.

Posté 29 August 2004 - 10:25 AM

boah, ces jeunes gens s'amusaient juste a faire des algos de remplissage de matrices, et visiblement tout le monde y a pris bcp de plaisir

Perso, une salle maths je cracherais pas dessus
Je fais plus de flash, maintenant je fais de l'actualité sur l'absinthe. Sinon : utilisation de _root : 1 genou pété, utilisation de séquences : 1 genou pété, utilisation de on() : 1 genou pété, ca tient toujours
0

#23 Utilisateur non-connecté   seal3

  • Habitué
  • Groupe : Habitués
  • Messages : 1758
  • Inscrit : 19-July 02
  • Location:Marseille
  • Interests:oulaaaaa :-)

Posté 29 August 2004 - 11:50 AM

ben moi aussi j'adore ce genre de truc !! mais là j'avais pas pigé le but de la fonction.


Faites pareil en php avec YSServer (serveur de socket) sur your-socket
0

#24 Utilisateur non-connecté   seal3

  • Habitué
  • Groupe : Habitués
  • Messages : 1758
  • Inscrit : 19-July 02
  • Location:Marseille
  • Interests:oulaaaaa :-)

Posté 29 August 2004 - 11:51 AM

en passant j'ai posé une question typiquement de matheux concernant les nurbs, mais pas de reponse. http://flash.media-b...1668&highlight=


Faites pareil en php avec YSServer (serveur de socket) sur your-socket
0

#25 Utilisateur non-connecté   Aggelos

  • Gardien du maillet brise-rotules
  • Groupe : Honoris
  • Messages : 3472
  • Inscrit : 11-April 04
  • Gender:Male
  • Location:Paris la Défense, parfois Grenoble
  • Interests:ecrire des contes philosophiques, philosopher, parler lettres, débattre sur les comportements humains,faire du théatre classique, du théatre d'impro, tu théatre expérimental,jouer aux jeux de roles, parfois (plus rarement) à des jeux vidéo,l'aikido, les mangas et animes, la culture japonaise en général
  • Version logiciel:ZORN !
  • Compétences: Non communiqué.

Posté 29 August 2004 - 12:05 PM

ouh pirée, tu sais pas dans quoi tu te lances. Deja, la théorie sur les splines bi dimensionnels ca constitue en soi un exercice de math spé (veridique), alors les nurbs...

Je te conseillerais de commencer par bien comprendre la théorie des splines et du dessin vectoriel, parceque l'enjeu c'est ca : appliquer la notion de dessin vectoriel a l'espace.

Courage, et que la force soit avec toi. En soi, si les moteurs 3D ne te font pas peur ca devrait aller. Enfin j'espere
Je fais plus de flash, maintenant je fais de l'actualité sur l'absinthe. Sinon : utilisation de _root : 1 genou pété, utilisation de séquences : 1 genou pété, utilisation de on() : 1 genou pété, ca tient toujours
0

#26 Utilisateur non-connecté   seal3

  • Habitué
  • Groupe : Habitués
  • Messages : 1758
  • Inscrit : 19-July 02
  • Location:Marseille
  • Interests:oulaaaaa :-)

Posté 29 August 2004 - 12:33 PM

oui j'en ai deja dev des moteurs 3D, C pas un prob...

je me suis deja penché sur la notion de spline. Deja sur 3DS, ensuite sous flash, et enfin sur director (sur le plan matheu je veux dire).

Je suis conscien de la difficultée, mais je suis pret a y passer des mois dessus si il faut biggrin.gif en fait j'adore ça !! mais je pense que cela devrai ouvrir des possibilitées dans le cadre de ma boite pour la 3D.

Mais pour cela il faudrait que je puisse m'appuyer sur des book ou des sites qui tratent le sujet. Le prob, C que sur google on tombe surtout sur des soft qui utilisent la technologie. C pour cela que je vous demmande...

Merci :-)


Faites pareil en php avec YSServer (serveur de socket) sur your-socket
0

#27 Utilisateur non-connecté   Aggelos

  • Gardien du maillet brise-rotules
  • Groupe : Honoris
  • Messages : 3472
  • Inscrit : 11-April 04
  • Gender:Male
  • Location:Paris la Défense, parfois Grenoble
  • Interests:ecrire des contes philosophiques, philosopher, parler lettres, débattre sur les comportements humains,faire du théatre classique, du théatre d'impro, tu théatre expérimental,jouer aux jeux de roles, parfois (plus rarement) à des jeux vidéo,l'aikido, les mangas et animes, la culture japonaise en général
  • Version logiciel:ZORN !
  • Compétences: Non communiqué.

Posté 29 August 2004 - 02:23 PM

sur amazon ils ont une poignée de bouquin sur les nurbs, ca pourrait t'interesser
Je fais plus de flash, maintenant je fais de l'actualité sur l'absinthe. Sinon : utilisation de _root : 1 genou pété, utilisation de séquences : 1 genou pété, utilisation de on() : 1 genou pété, ca tient toujours
0

#28 Utilisateur non-connecté   seal3

  • Habitué
  • Groupe : Habitués
  • Messages : 1758
  • Inscrit : 19-July 02
  • Location:Marseille
  • Interests:oulaaaaa :-)

Posté 29 August 2004 - 03:46 PM

ha merci :-)


Faites pareil en php avec YSServer (serveur de socket) sur your-socket
0

Page 1 sur 1
  • Vous ne pouvez pas créer de sujet
  • Vous ne pouvez pas répondre au sujet

1 utilisateur(s) dans ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)