La récursivité avec CaRMetal

Lieu d'échange sur les pratiques et les réalisations de scripts
Post Reply
User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

La récursivité avec CaRMetal

Post by Dibs » Mon May 20, 2013 2:38 pm

De la récursivité avec CaRMetal : http://mathstilde.free.fr/appli/recursivite.htm

User avatar
yves974
Posts: 268
Joined: Tue Oct 30, 2007 3:11 am
Location: Réunion

Post by yves974 » Sun May 26, 2013 8:36 pm

Bizarre qu'il n'y ait pas eu de réponses à ce post. Peut-être des réponses privées ???

Le staff de CaRMetal est en ce moment partagé entre DGPad (améliorations avant une présentation significativement importante) et une nouvelle sortie collaborative de CaRMetal.

Même si je ne suis pas vraiment dans le staff, je fais régulièrement les cafés, donc j'entends ce qui se dit à la machine à café (moi quoi).

Donc je peux te dire que tout le monde a été scotché par ton travail, et donc qu'il y aura une suite quand les neurones de chacun seront revenues sur des orbites plus régulières.

@+

En plus Pau ...

User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

Post by Dibs » Mon May 27, 2013 7:52 pm

En fait, ce n'est que la suite logique d'une discussion sur le forum avec Hesperion (que je tiens à remercier).

Je suis content d'apprendre qu'il y aura une suite dans CaRMetal (et que l'évolution continue).
Car, confidence pour confidence, je craignais qu'il soit un peu délaissé...
N'oublions pas de rouler pour CaRMetal. DGPad, c'est un conceptCaR.

User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

Post by Dibs » Thu Jun 06, 2013 11:23 pm

On poursuit ici avec une macro intégrant un curseur (voir le premier post).
Il s'agit de construire la figure du "carré spiralant" (que j'avais vue dans l'article d'Yves sur DGPad dans MathemaTice).

Image

En voyant cette figure, je me suis dit qu'ele pouvait être construite avec la méthode décrite dans le premier post.
Voici ce que ça donne :

Schéma de la macro :
Image

Script :
Image

Tout fonctionne bien.

Remarques :
  • * x est un curseur entre 0 et 0,2.
    * La macro a cinq initiaux : une expression, et les 4 sommets du carré.
    * La macro est créée en utilisant une expression, que l'on remplace ensuite dans le script par le curseur x.
    * Les sommets A, B, C, D du carré initial doivent être construits préalablement (par construction ou par script).

User avatar
yves974
Posts: 268
Joined: Tue Oct 30, 2007 3:11 am
Location: Réunion

Post by yves974 » Fri Jun 07, 2013 12:24 am

hyper convainquant ... hyper convainquant
Va falloir que CaRMetal intègre ça dans la version standard.

En ce moment comme tu as vu, le staff est sur la version serveur (figures collaboratives), sortie dimanche. Mais bon depuis la 3.8.1 y a déjà 3 versions de plus en apparté plus encore une finition ce WE, on a des démos la semaine prochaine à la Réunion et ... ailleurs ... Ce soir j'ai joué pratiquement 2 h depuis La Réunion sur des figures en métropole, enfin chacun jouait sur les modifs de l'autre ... y compris avec des scripts action, c'est dire. En gros on fait du multitouch sur la même figure à 2, à 8000 km ... même si c'est fait pour être utilisé en classe quand même ...

Un exemple de Alain :

http://www.reunion.iufm.fr/recherche/ir ... article654

Bref, une fois tout ceci passé, les gens un peu calmé, j'espère que l'équipe de CaRMetal va rapidement te contacter et t'accueillir ... avec ton code pour une prochaine version 3.9 ou 4.0

Faudra prévoir des articles explicatifs genre sur MathémaTICE par exemple ...

@
Yves

User avatar
erichake
Site Admin
Posts: 145
Joined: Sun Oct 28, 2007 11:51 pm
Location: Millau

Post by erichake » Fri Jun 07, 2013 7:24 am

Oui, ce retour de tableau de MacroToArray est effectivement un outil rêvé pour la récursivité. Je suis complètement convaincu par ton travail, merci beaucoup et félicitations !

Il est possible que dans le courant de la semaine prochaine, je sorte une 3.8.2. Je suppose que tu as placé MacroToArray dans JSFunctions.java. Si cela t'interesse, tu pourrais m'envoyer le source de ta méthode, comme ça je pourrais faire un petit copier-coller avant la prochaine compilation !

Encore merci pour ton boulot, c'est assez bluffant je dois dire.

User avatar
alain974
Posts: 150
Joined: Sat Jun 13, 2009 9:08 am
Location: Réunion

Post by alain974 » Fri Jun 07, 2013 9:31 am

yves974 wrote:En gros on fait du multitouch sur la même figure à 2
En fait, à 3, mais pendant un instant trop court... Il aurait fallu faire une capture d'écran en vidéo pour immortaliser ça; la prochaine fois?

User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

Post by Dibs » Fri Jun 07, 2013 4:04 pm

Euh...?!... Pincez-moi ! Je suis flatté, mais honnêtement c'est vraiment pas grand-chose...
Ce sont les approches initiales de CaRMetal qui font tout, je les trouve géniales, mais je ne les comprends bas bien.
En fait, je me contente de les appliquer. Et je reste ébloui par le fait que ça marche !

Je ne voudrais pas qu'il y ait quiproquo : je suis très loin d'avoir votre niveau. Je bricole.
Mais si vous pensez que je peux participer un tout petit peu au développement de CaRMetal, ça me va.

Sans CaRMetal (et les tutoriels de l'équipe), je ne me serais pas vraiment intéressé à la GD.
Et j'admire votre travail.

@Eric : dès que j'aurai un instant (je suis charrette avec mes bulletins...), je retrouverai les modifs que j'ai faites sur le code source et je te les enverrai. (Pincez-moi ! Nan mais allô, quoi...)

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Post by Hesperion » Fri Jun 07, 2013 6:22 pm

Alors en fait :

Il est déjà possible depuis la 3.8 d'avoir la listes des éléments créés par une macro. J'avais implémenté ça je ne sais plus quand... quelque part entre la 3.7 et la 3.8, sans sorti officielle.
Plus précisément, ExecuteMacro renvoie en chaine de caractères la liste des noms des tous les objets créés par cette macro.

Là où la version de Dibs utilise la syntaxe suivante :

Code: Select all

t = MacroToArray("DibsRecursivite/KochFeuille",x+","+y,3);
la version 3.8 de CaRMetal utilise celle-ci :

Code: Select all

t = ExecuteMacro("DibsRecursivite/KochFeuille",x+","+y).split(",");
Par contre, en testant les deux versions, j'ai l'impression que la version Dibs est plus rapide.
Attachments
koch_dibbs.zir
(2.61 KiB) Downloaded 74 times

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Post by Hesperion » Fri Jun 07, 2013 6:33 pm

Effectivement c'est plus rapide : 1700ms contre 1200ms !!!

User avatar
erichake
Site Admin
Posts: 145
Joined: Sun Oct 28, 2007 11:51 pm
Location: Millau

Post by erichake » Fri Jun 07, 2013 8:28 pm

@Dibs : Le "niveau" en prog. c'est souvent juste l'habitude et le temps qu'on y passe, c'est tout !

Tu n'as pas à te sentir timide sur ce coup-là parce qu'en regardant ce que tu fais avec ta "MacroToArray" j'ai vite compris que même s'il s'agit d'une petite contribution, cela reste une contribution importante. Ca se mesure pas aux nombres de lignes de code...

@Hesperion : je n'avais pas vu que tu avais fait un retour de chaîne sur ExecuteMacro. Super ! Effectivement le split encapsulé dans une recursivité doit juste ralentir un peu. Je suis vraiment pour qu'il y ait les deux, en gardant ExecuteMacro tel quel pour des raisons évidentes de compatibilité.

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Post by Hesperion » Sat Jun 08, 2013 8:11 am

Ça y est, tout me revient. (J'ai profité de la longue panne d’électricité d'hier soir pour me remémorer l'origine des événements)

Et donc la personne qui donne le point de départ de cet ajout est ... bien évidemment : Dibs.
Voir ce sujet

Post Reply