| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
jerome
Inscrit le: 06 Nov 2007 Messages: 173 Localisation: Saint-Brieuc
|
Posté le: Jeu Juil 01, 2010 9:32 pm Sujet du message: CaRScript orienté objet pour des patrons de cube |
|
|
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 |
|
 |
jerome
Inscrit le: 06 Nov 2007 Messages: 173 Localisation: Saint-Brieuc
|
Posté le: Jeu Juil 01, 2010 9:47 pm Sujet du message: |
|
|
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 |
|
 |
jerome
Inscrit le: 06 Nov 2007 Messages: 173 Localisation: Saint-Brieuc
|
Posté le: Jeu Juil 01, 2010 9:55 pm Sujet du message: |
|
|
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 |
|
 |
jerome
Inscrit le: 06 Nov 2007 Messages: 173 Localisation: Saint-Brieuc
|
Posté le: Jeu Juil 01, 2010 10:10 pm Sujet du message: |
|
|
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 |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Ven Juil 02, 2010 6:35 am Sujet du message: |
|
|
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 |
|
 |
jerome
Inscrit le: 06 Nov 2007 Messages: 173 Localisation: Saint-Brieuc
|
Posté le: Ven Juil 02, 2010 8:27 am Sujet du message: |
|
|
| 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 |
|
 |
yves974 Site Admin

Inscrit le: 30 Oct 2007 Messages: 244 Localisation: Réunion
|
Posté le: Ven Juil 02, 2010 8:39 am Sujet du message: |
|
|
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 |
|
 |
jerome
Inscrit le: 06 Nov 2007 Messages: 173 Localisation: Saint-Brieuc
|
Posté le: Ven Juil 02, 2010 10:16 am Sujet du message: |
|
|
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 |
|
 |
|
|
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
|
|