CaRMetal-FR

Forum des utilisateurs francophones
login.php?sid=55321b68d6e699278cdf8a59006ca9ef profile.php?mode=register&sid=55321b68d6e699278cdf8a59006ca9ef faq.php?sid=55321b68d6e699278cdf8a59006ca9ef memberlist.php?sid=55321b68d6e699278cdf8a59006ca9ef search.php?sid=55321b68d6e699278cdf8a59006ca9ef index.php?sid=55321b68d6e699278cdf8a59006ca9ef

CaRScript orienté objet pour des patrons de cube

 
Poster un nouveau sujet   Répondre au sujet    CaRMetal-FR Index du Forum -> Les CaRScripts
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
jerome



Inscrit le: 06 Nov 2007
Messages: 173
Localisation: Saint-Brieuc

MessagePosté le: Jeu Juil 01, 2010 9:32 pm    Sujet du message: CaRScript orienté objet pour des patrons de cube Répondre en citant

Il est un peu frustrant, lorsque l'on passe de CaRMetal à CaRScript, de passer de la manipulation agréable des objets géométriques à de bêtes lignes de code.
Aussi, quand j'ai découvert que JavaScript, et donc CaRScript, était un langage orienté objets, je me suis proposé de réécrire le script Patron de cube en utilisant non plus des tableaux mais des objets. Le code en devient, à mon sens, plus agréable à lire et à taper.

Comme d'habitude le script se trouve dans le fichier CaRMetal qu'il suffit de télécharger.


Dernière édition par jerome le Jeu Juil 01, 2010 10:12 pm; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jerome



Inscrit le: 06 Nov 2007
Messages: 173
Localisation: Saint-Brieuc

MessagePosté le: Jeu Juil 01, 2010 9:47 pm    Sujet du message: Répondre en citant

Quelques explications pour passer d'une face à une autre.

Au début la face du bas, et elle seule, est muni d'un "repère". En fait 6 points qui vont permettre de construire les 6 points de la face de gauche, en faisant l'hypothèse que l'utilisateur a cliqué sur l'arête A4.

Pour la face du bas, le repère est la liste (S4, S1, S2, S3, O, P1).
Pour la face de gauche, à construire, ce sera (S1, S4, P2, P5, P3, P4).

Sans entrer dans les détails techniques, P2 a pour coordonnées(cos(ang) ; sin(ang)) dans le repère 2D (S4, vecteur(S3S4), vecteur(OP1)).
Et P4 (sin(ang) ; cos(ang)) dans le repère 2D(P3, S4S3, OP1).
Les autres points ne posent pas de problème.

Remarquer au passage la couleur des quatre arêtes de la face de gauche du cube. A4 est passé de vert à noir car l'utilisateur ne peut plus la choisir. Alors que les trois autres arêtes sont dessinées en vert car on peut désormais continuer le patron à partir de la face de gauche nouvellement créée.


Dernière édition par jerome le Jeu Juil 01, 2010 10:15 pm; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jerome



Inscrit le: 06 Nov 2007
Messages: 173
Localisation: Saint-Brieuc

MessagePosté le: Jeu Juil 01, 2010 9:55 pm    Sujet du message: Répondre en citant

Ci-dessous, le patron final, où chaque face est muni d'un repère 3D à 6 points.
En théorie 4 suffiraient.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jerome



Inscrit le: 06 Nov 2007
Messages: 173
Localisation: Saint-Brieuc

MessagePosté le: Jeu Juil 01, 2010 10:10 pm    Sujet du message: Répondre en citant

Pour la programmation objet, j'avais déjà touché auparavant à l'Objective-C (merci la pomme) mais j'ai découvert récemment qu'un CaRScript pouvait être orienté objet grâce à cette page.
Mais ce qui m'a le plus aidé est cette page-ci.

Si d'autres veulent se lancer…
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Ven Juil 02, 2010 6:35 am    Sujet du message: Répondre en citant

Avec ce script, Jérôme inaugure une nouvelle dimension pour la programmation en géométrie dynamique.

Et cela fait vraiment réfléchir le "vieux routard" de la GD que je suis. Est-on entrain de passer de la géométrie dynamique à quelque chose qui relèverait plus de la programmation dynamique ? La programmation objet de JS avec sortie dynamique dans CarMetal serait-elle une opportunité dans certains cours d'info pour des projets dynamiques innovants ? au moins des TP ?

En effet, les CarScripts "de base" apportaient l'aspect "programmation" (au sens des programmes de lycée) aux figures, c'était l'objectif de Eric. Avec les objets, Jérôme nous montre la voie vers des perspectives tout à fait nouvelles : celles de la maîtrise de structures dynamiques en manipulation directe. On le voit sur les patrons mais on pourrait l'utiliser dans des domaines plus ou moins éloignés de la géométrie aussi (en restant limités à mes centres d'intérêts immédiats, je pense à la représentation graphique dynamique des structures affines ou projectives sur des corps finis, ceci n'étant qu'un exemple très restreint).

A priori (pour un temps au moins) cela reste réservé aux vrais amateurs de code objet, mais Jérome a pris le temps de largement documenter son script (+ ses posts d'explication) pour que l'on comprenne la démarche et la syntaxe. La partie "objet pur", (les ajouts de méthodes), c'est quand même assez hard. C'est clair qu'il y a une expertise de programmation pas à la portée de tout un chacun.

Faire de la programmation objet comme cela ne sera pas un exigible pour les profs de maths, cela ne rentrera pas dans les lycées. Mais qui sait, dans certaines universités, selon certains parcours spécifiques - je pense à des mutalisations dans des maquettes Maths/Info - cela pourrait être pratiqué, en TP, en formation initiale dans quelques UE du nouveau master "parcours d'enseignement".

Et puis il va y avoir l'option "science informatique" qui va bientôt arriver dans les programmes de lycée. On sait déjà qu'il n'y aura pas de CAPES et d'Agrégation pour cela, mais plutôt des stages lourds comme ce fut le cas dans les années 80 ... alors qui sait ... il y a aussi des perspectives de TP en stage lourd ... en objet sur CaRMetal ...

Ces quelques réflexions pour signaler que la voie ouverte par Jérôme est peut-être à faire connaitre dans un champ plus large que les enseignants de mathématiques.

Spécial Jérôme : quand on clique sur les premiers segments, on peut toujours déplacer le cube pour mieux voir ce que l'on fait. Par contre je ne comprends pas pourquoi on ne peux pas modifier l'angle en cours de script. Tu utilises directement "ang" donc il ne devrait y avoir aucun problème a priori. Si tu avais une idée, histoire de rentre "la structure dynamique" encore plus "en manipulation directe".
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jerome



Inscrit le: 06 Nov 2007
Messages: 173
Localisation: Saint-Brieuc

MessagePosté le: Ven Juil 02, 2010 8:27 am    Sujet du message: Répondre en citant

yves974 a écrit:

Spécial Jérôme : quand on clique sur les premiers segments, on peut toujours déplacer le cube pour mieux voir ce que l'on fait. Par contre je ne comprends pas pourquoi on ne peux pas modifier l'angle en cours de script. Tu utilises directement "ang" donc il ne devrait y avoir aucun problème a priori. Si tu avais une idée, histoire de rentre "la structure dynamique" encore plus "en manipulation directe".


Normalement l'angle est modifiable en utilisant le bouton droit de la souris.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
yves974
Site Admin


Inscrit le: 30 Oct 2007
Messages: 244
Localisation: Réunion

MessagePosté le: Ven Juil 02, 2010 8:39 am    Sujet du message: Répondre en citant

Effectivement. Surprenant quand même car on peut modifier l'angle avec le clic principal avant et après le script. Comment se fait-il que PENDANT il faut un clic droit ? J'ai l'impression de n'avoir jamais rencontré ça avant, mais je peux me tromper.

En tout cas c'est super pour l'aspect dynamique du script en cours d'exécution, mais surprenant ...

Si quelqu'un qui passe par là avait une explication ... voire même une piste ...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
jerome



Inscrit le: 06 Nov 2007
Messages: 173
Localisation: Saint-Brieuc

MessagePosté le: Ven Juil 02, 2010 10:16 am    Sujet du message: Répondre en citant

Le script attend une réponse de l'utilisateur, à savoir un clic gauche sur un segment.
Dans la version précédente, on pouvait cliquer gauche sur l'angle, mais le script plantait.
J'ai ajouté la commande try pour éviter le plantage, et j'ai laissé vide le traitement de l'erreur. Peut-être y a t-il quelque-chose à ajouter.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    CaRMetal-FR Index du Forum -> Les CaRScripts Toutes les heures sont au format GMT
Page 1 sur 1

 
  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Traduction par : phpBB-fr.com