Future version 1.95

Future version à tester

Future version 1.95

Messagepar P.Fradin » 16 Août 2009 10:21

Voici en test la future version 1.95 (enfin ... une ébauche):

Quoi de neuf (la liste sera complétée au fur et à mesure):

  • Ajout de macros pour la gestion de tables de chaines (une clé+une chaine)
  • Ajout de macros pour la gestion de listes de chaines
  • Prise en compte du clipping pour les gradients
  • Prise en compte de la transparence pour les labels qui ont un fond
  • Nouveaux marqueurs dans le modèle draw2d.mod et modification du nom des paramètres pour le gradient (initiale en majuscule).
  • Apparition du modèle draw2d.mod (version 0.4) au côté des modèles déjà existants (Animation, Arbres, Capture, ...). Mise en garde: détruire les anciens fichiers draw2d.* de votre dossier TeXgraphMac.
  • Le modèle Mouse3.mod est devenu Mouse.mod.
  • Mise à jour des fichiers exemples.
  • Apparition de la macro Exit, contrairement à la macro Init, elle est exécutée lorsque le fichier en cours est fermé, c'est à dire lorsqu'on ouvre/crée un nouveau fichier.
  • Nouvelles constantes: GUI qui vaut 0 ou 1 et permet de savoir si on est dans l'interface graphique ou non. DirSep: renvoie sous forme de chaine le séparateur des dossiers dans un chemin.
  • Nouvelles commandes: DelVar(nom1, nom2,...), DelMac(nom1,nom2,...), ExistsVar(nom), ExistsMac(nom), RenCommand(nom, nouveauNom) (renommer une commande TeXgraph).
  • La macro RenMac((nom, nouveauNom) s'applique maintenant à toutes les macros, y compris les prédéfinies.
  • Les fichiers sources (*.teg) sont maintenant au nouveau format (comme la sortie scr4latex), mais les différents éléments graphiques ne sont plus fusionnés.
  • Modification pour les boucles for: il ne sera plus possible d'utiliser en même temps les options step et by/By (faut avouer que c'est extrêmement rare!), par contre on y gagne en efficacité car la liste n'est plus dupliquée pour son parcours et de plus elle peut être modifiée pendant le parcours.
  • Apparition de la constante sep: celle-ci sert dans le parcours de boucles par composante (by/By jump), pour chaque composante elle contient la constante jump qui la termine.
  • L'option TeXify:=0/1 peut-être utilisée en opton globale. Les labels composés avec l'option TeXify égale à 1 sont désormais exportés en 3D lors des exports javaview et geomview. L'option labeldir:=[vecteur1, vecteur2], qui existait déjà pour l'export povray, fait son apparition, elle est prise en compte lorsque TeXify=1, même pour l'affichage à l'écran.
  • Apparition le l'option label3d:=0/1 pour la macro bdLabel, avec cette option le label est composé par TeX puis transformé en prisme dans l'espace.
  • Commande GetSpline(): même syntaxe que la commande Spline, elle renvoie la liste des points de contrôle de la courbe (une spline est une suite de courbes de Bézier).
  • Macro Ceil() qui renvoie le plus entier supérieur ou égal.
  • Macros de manipulations des listes par composantes connexes (deux composantes sont séparées par la constante jump). Ces macros sont: CpCopy, CpDel, CpReverse, CpReplace, elles s'utilisent comme les commandes du même nom sans le Cp, mais au lieu de traiter les listes par atome (complexe) elles traitent les listes par composante.
  • Dessin des ensembles: la macro set renvoie maintenant le contour de l'ensemble non plus sous forme d'une liste de points, mais la liste des points de controles, elle peut-être dessinée avec la commande Bezier(liste). Des macros d'intersection et réunion font leur apparition: capB et cupB (B pour bézier). L'intérêt c'est qu'avec les courbes de Bézier on reste en vectoriel.
  • Ajout de nouvelles options pour la scène 3D: option générale hiddenLines:=0/1 (affichage ou non des arêtes cachées), options pour les facettes: border:=0/1 (affichage des arêtes), hidden:=0/1 (affichage des arêtes cachées, uniquement si border=1). Les arêtes cachées sont dessinées par dessus la scène mais elles sont bien incluses dans la scène. Par contre c'est à proscrire pour un export javaview ou geomview. L'adaption au modèle povray va venir ensuite.
  • On peut faire tourner une scène 3D au clavier avec: Ctrl+flèches gauche/droite/haut/bas.
  • La façon de faire tourner une scène 3D à la souris à changer.
  • La façon de déplacer le graphique à la souris à changer.
  • L'élément graphique prédéfni Cercle est devenu Ellipse(centre, rX, rY, inclinaison) [mais Cercle reste valable].
  • Corrections de bugs.




Voici quelques uns des objectifs de la future version 1.95:

  • Généraliser la nouvelle syntaxe (src4latex).
  • Prise en compte du gradient dans les remplissages.
  • Enrichir le style des flèches.
  • Intégrer et généraliser la notion de marqueurs (ce qui peut englober les flêches).
  • Uniformiser les noms et la syntaxe des macros de dessins, peut-être quelque chose du genre:
    draw( <type>, <données>, [options])
  • ...
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 17 Août 2009 09:35

Beau programme en perspective...

Je rajouterai un autre objectif : corriger les quelques fautes de frappes présentes dans la doc :lol:

Je rigole : je dis ca juste parceque je suis tombé par hasard sur cette syntaxe : Round(<cmoplexe> [, nb décimales]) !!!!!

Plus sérieusement, je vais attaquer en détail la doc courant septembre et je te ferai part de toutes mes remarques et suggestion pour la future version (pas que sur les fautes d'orthographe!!) Comme nous l'a montré Eric : il vaut mieux suggéré après avoir lu la doc!!! Je suis passé par là moi aussi (je me souviens avoir suggéré des trucs qui étaient dans la doc de TeXgraph suite à une de mes propres suggestions!!! :roll:)
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar Eric » 17 Août 2009 12:15

Et je suis tombé sur un s qui manque en bas de la page 22 ("Le variables") ... Et après ça, on va dire que je ne lis pas la doc ... :evil:
Eric
 
Messages: 242
Inscription: 07 Août 2009 21:05
Localisation: Asnieres

Re: Future version 1.95

Messagepar P.Fradin » 17 Août 2009 12:20

Eric a écrit:Et je suis tombé sur un s qui manque en bas de la page 22 ("Le variables") ... Et après ça, on va dire que je ne lis pas la doc ... :evil:


Heu... Chez moi c'est à la page 25 cette erreur :P
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Eric » 17 Août 2009 12:54

P.Fradin a écrit:
Eric a écrit:Et je suis tombé sur un s qui manque en bas de la page 22 ("Le variables") ... Et après ça, on va dire que je ne lis pas la doc ... :evil:


Heu... Chez moi c'est à la page 25 cette erreur :P


:oops: :oops: :oops:

Et voilà ... on va dire que je lis mal la doc ! :evil:
Eric
 
Messages: 242
Inscription: 07 Août 2009 21:05
Localisation: Asnieres

Re: Future version 1.95

Messagepar Alphonse Capriani » 17 Août 2009 13:04

:lol: Eric : t'as du lire la doc de la version 1.4...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar albert » 26 Août 2009 21:46

Dans le genre faute de frappe :

bulle du bouton "courbe parmaétrée (ctrl+D)" :mrgreen:
albert
 
Messages: 26
Inscription: 17 Août 2009 02:18

Re: Future version 1.95

Messagepar P.Fradin » 26 Août 2009 22:19

albert a écrit:Dans le genre faute de frappe :

bulle du bouton "courbe parmaétrée (ctrl+D)" :mrgreen:


Ah oui! effectivement, c'est Ctrl+P et non Ctrl+D :oops:
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar albert » 27 Août 2009 01:10

En fait, je signalais la faute d'orthographe, pas le raccourci clavier :mrgreen: :mrgreen:
albert
 
Messages: 26
Inscription: 17 Août 2009 02:18

Re: Future version 1.95

Messagepar P.Fradin » 27 Août 2009 09:41

albert a écrit:En fait, je signalais la faute d'orthographe, pas le raccourci clavier :mrgreen: :mrgreen:


Moi aussi je fais des blagues :lol:
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 08 Sep 2009 15:08

>>>> WARNING <<<<

Je viens de remarquer un bug avec la version actuelle de TeXgraph!!!

Plutôt qu'un long discours, voici la marche à suivre pour l'obtenir :
  1. Lancer TeXgraph,
  2. Charger la dernière version de PolyedresII.mac
  3. Créer un nouvel élément graphique utilisateur avec le code suivant :
    Code: Tout sélectionner
    [
    StOctaedre(1, Origin, vecI, A, B),
    Build3D(A, B),
    Display3D()
    ]

    et valider.
    Ce code n'est pas correct car la macro StOctaedre ne possède pas d'argument <Type> comme pour les autres stellations. (Je vais modifier la syntaxe dans la prochaine version...)
  4. Modifier alors le code précédent avec :
    Code: Tout sélectionner
    [
    StOctaedre(Origin, vecI, A, B),
    Build3D(A, B),
    Display3D()
    ]

    et valider.
    Et là : c'est le drame!!! L'écran est rempli de la couleur Color1!!! Un seul moyen pour résoudre le problème : relancer TeXgraph!!!

Sinon, j'ai quelques suggestions pour la future version :

> Modifier la fonction Light permettant d'éclaircir une couleur en prenant comme facteur 1 moins le facteur actuel. En fait, je pense qu'il serait plus logique que la fonction éclaircisse d'autant plus la couleur que le facteur est grand (proche de 1) ce qui est l'inverse de ce qu'elle fait à l'heure actuelle.
> Dans le même ordre d'idée, créer une fonction Dark(couleur, facteur) qui permettrait de foncer une couleur. Plus le facteur serait proche de 1, plus la couleur serait foncée et plus le facteur serait proche de 0, plus la couleur renvoyée se rapprocherait de la couleur initiale.

> Autre suggestion qui n'a rien à voir : modifier la syntaxe de la fonction sort pour pouvoir faire des tris sur plusieurs liste. Cette nouvelle syntaxe serit du genre : Sort(<Liste1>, <Liste2>, ..., <Liste n>). Toute les listes prises en argument sont de la même taille et la fonction trie la première tout en réorganisant les autres en fonctions des modifications effectuée. Par exemple Sort([2, 5, 1, 7], [2, 8, 9, 4]) renverrai la liste [1, 2, 5, 7] et [9, 2, 8, 4]. (Je remarque au passage que ca renvoie pas qu'un objet, donc ca risque d'être compliquée cette histoire!!! :roll: )
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar P.Fradin » 08 Sep 2009 23:01

Bonsoir Alphonse,

Je n'ai que peu de temps en ce moment ... Bon, j'ai regardé ton problème, mais ce n'est pas un bug, c'est même tout à fait normal. Quand tu tapes: StOctaedre(1,Origin, vecI, A, B), la variable globale vecI est modifiée par tes macros car elle reçoit des facettes il me semble. Tu coup cette variable ne contient plus le vecteur (1,0,0), d'où le problème constaté par la suite.

Avec ça:

Code: Tout sélectionner
[
vecI:=[1,0],
StOctaedre(Origin, vecI, A, B),
Build3D(A,B),
Display3D()
]   


tout revient dans l'ordre.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 09 Sep 2009 09:32

Ah! Ouais!!!

J'avais pas pensé à ca!!! :roll:
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar P.Fradin » 09 Sep 2009 18:28

Pour la macro Light, c'est réglé. Pour la macro Dark, c'est ajouté.
Pour la variante sur la commande Sort, il y a déjà un deuxième argument (optionnel) pour avoir un tri dans le sens décroissant. On pourrait envisager d'ajouter d'autres arguments qui seraient des variables que la commande réarrangerait en fonction du tri de la première liste.
Ceci dit, la commande Sort trie des listes de complexes, donc pour reprendre ton exemple, la commande:

Code: Tout sélectionner
[ L:=[2+2*i, 5+8*i, 1+9*i, 7+4*i], Sort(L), L ]


renvoie: [1+9*i,2+2*i,5+8*i,7+4*i], comme on le voit, la liste des parties imaginaires a été réarrangée comme tu le souhaites.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 09 Sep 2009 18:45

Exact! J'avais pas pensé à ça!!

Mais ca limite à une seule liste dépendante d'une liste de réels.
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar P.Fradin » 11 Sep 2009 12:28

J'ai réfléchi à ce problème de tri, finalement j'ai crée une nouvelle commande:

PermuteWith( permutation, liste, taille)


permutation est une liste d'entiers de 1 à n qui représente une permutation des entiers de 1 à n.
liste: est une variable représentant une liste de complexes qui peut contenir la constante jump, cette liste va être traitée par paquets,
taille: précise la taille des paquets, (1 par défaut), si la taille vaut jump, la liste sera traitée par composante.

Cette commande réorganise la liste (par paquets) en lui appliquant la permutation, la liste est donc modifiée. Dans la version actuelle il ne peut pas y avoir de paquets dupliqués (normal pour une permutation), les paquets non complets ou non cités dans la permutation, sont détruits.

Exemples:

Code: Tout sélectionner
[ L:=[24,16,32,12,-8], PermuteWith( [4,3,5,1], L), L]

donne [12,32,-8,24].

Code: Tout sélectionner
[ L:=[24,16,32,jump, 12,-8, 16], PermuteWith( [2,3,1], L), L]

donne [16,32,24,jump,-8,16,12]

Code: Tout sélectionner
[ L:=[24,16,32,jump, 12,-8, 16,jump], PermuteWith( [2,1], L,jump), L]

donne [12,-8,16,jump,24,16,32,jump]

Avec cette commande on peut alors écrire une toute petite macro qui répond à la question initiale d'Alphonse.

Mais je me pose quelques questions:
1) Doit-on pouvoir dupliquer des paquets?
2) Faut-il modifier la liste ou renvoyer le résultat?
3) Quel doit être le nom de cette commande?
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 14 Sep 2009 10:05

Salut Patrick!!

Très bonne idée cette macro!

Concernant les 3 questions que tu poses, voici mon opinion :

1) Pour la duplication des paquets, je vois pas pourquoi ca pourrait pas être possible. Si tu répète plusieurs fois le numéro du paquet dans la liste "Permutation", alors le paquet peut très bien être répété.

2) Personellement, je préfère une macro qui renvoie une liste plutôt qu'elle modifie la liste prise en argument. C'est plus simple d'utilisation je trouve...

3) Euh... Je dois admettre que "PermuteWith" n'est pas très parlant pour moi, mais bon, je n'ai pas forcément de suggestion à ce niveau. Je vais réfléchir à ca...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar P.Fradin » 14 Sep 2009 13:27

Salut Alphonse,

Alphonse Capriani a écrit:1) Pour la duplication des paquets, je vois pas pourquoi ca pourrait pas être possible. Si tu répète plusieurs fois le numéro du paquet dans la liste "Permutation", alors le paquet peut très bien être répété.


Ok, c'est réglé.

2) Personellement, je préfère une macro qui renvoie une liste plutôt qu'elle modifie la liste prise en argument. C'est plus simple d'utilisation je trouve...


Ok, mais ça oblige à dupliquer les listes, pas très efficace quand on peut éviter surtout si c'est pour faire: L:=PermuteWith( .., L)! Dans cette affectation il y aurait deux duplications listes, et aucune dans la version originelle.

3) Euh... Je dois admettre que "PermuteWith" n'est pas très parlant pour moi, mais bon, je n'ai pas forcément de suggestion à ce niveau. Je vais réfléchir à ca...


Ah bon? Pourtant il me semblait que Permuter avec était très clair :(, on permute une liste avec une certaine permutation.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 14 Sep 2009 13:54

Pour le point 2), je pense que tu arrive beaucoup mieux à cerner les avantages/défauts de l'une ou l'autre possibilité. J'avais pas du tout pensé à l'efficacité de l'algorithme, mais si tu dis que ca peut permettre de moins faire travailler TeXgraph inutilement, alors la version modifiant directement la liste utilisée est peut être mieux.

Concernant le nom de la macro, peut être que le With est de trop. Mais en même temps, je crois qu'il existe déjà une macro s'appelant permute :?
Peut être qu'un nnom comme "switch", ou un truc du genre serait mieux. Ou peut être que PermuteWith est très bien aussi et que une fois encore je cherche la petite bête...

Je te laisse faire le choix : je sais pas trop quoi dire!!!
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar Alphonse Capriani » 19 Oct 2009 17:48

Salut Patrick!!!

J'ai une petite suggestion pour TeXgraph. Je pense quil serait utilie de modifier la syntaxe de la macro Del pour que l'on puisse supprimer des éléments d'une liste dont les indices sont contenus dans une autre liste. Je propose donc la même syntaxe que celle actuelle :

Del(<Liste>, <Indices départs>, <Longueur>) ( Del(L, ind, n) )

Cette macro permettrait alors de supprimer les n termes consécutifs de L démarrant à chaque indice de la liste ind. Bien sur, ca implique qu'il peut y avoir des chevauchement des suppressions, mais vu qu'on veut justement dégager ces éléments, ca pose pas de problème.

On pourrait même généraliser cette syntaxe en donne comme paramètre Longueur une liste de la même taille que la liste Indice_départs qui donnerait le nombre d'éléments consécutifs à supprimer pour chaque indice de départ.

J'ai été clair?

Voici des exemple qui éclairciront peut être mon discours :

Del([9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [1, 4, 8], 2) --> [7, 4, 3, 0]
Del([9, 8, 7, 6, 5, 4, 3, 2, 1, 0], [1, 4, 8], [2, 1, 2]) --> [7, 5, 4, 3, 0]
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar P.Fradin » 19 Oct 2009 18:49

Salut Alphonse,

Là je ne suis pas très chaud! Il y a de plus quelque chose qui complique notablement l'affaire: lorsqu'on a traité le premier élément des deux listes <départs> et <longueurs>, la liste est modifiée, mais les indices suivants se réfèrent toujours à la liste initiale ...

PS: au fait tu n'oublies pas les polyèdres :roll:
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 20 Oct 2009 17:04

Salut salut Patrick!!!

P.Fradin a écrit:Là je ne suis pas très chaud! Il y a de plus quelque chose qui complique notablement l'affaire: lorsqu'on a traité le premier élément des deux listes <départs> et <longueurs>, la liste est modifiée, mais les indices suivants se réfèrent toujours à la liste initiale ...

Dommage : ca aurait pu être pratique! :|

P.Fradin a écrit:PS: au fait tu n'oublies pas les polyèdres :roll:

Poly quoi???

:lol: Je ne les oublie pas : je me suis juste penché sur d'autres soucis, mais je vais y revenir Comme je l'avais dit, le DU71 est prêt et les diverses modifs que tu avais suggéré (notament des faces pas décomposées en facettes convexes) sont réglées. Pour le DU75, je ne me suis pas encore penché dessus, mais je vais essayer de régler ca d'ici la semaine prochaine. Et il reste également le DU80 ou plutot les antidiamants croisés : la macris que j'avais faite ne marche pas pour tous les couples (p, q), donc il va falloir que je la révise.
Je poste tout ca d'ici mardi prochain, et si ce n'est toujours pas fait, je t'autorise à me donner un gage...

Au fait : ta galerie de polyèdres est remarquable!
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar Alphonse Capriani » 26 Oct 2009 18:01

Alors voilà : pour construire les polyèdres, je suis obligé de bidouiller un peu pour déterminer la liste à passer dans la macro MakePoly.
En construisant le DU75, plusieurs fonctions qui m'auraient été très utiles manquent à TeXgraph. Je voudrais avoir ton avis si elles sont intégrables à la version actuelle de TeXgraph ou si j'exagère avec des suggestions inutiles.

La première macro serait une macro "unique(<Liste>)" (resp "unique3d(<Liste3d>)") qui prendrait en argument une liste de complexes (resp de points 3D) et qui renverrait la liste formé d'un seul exemplaire des éléments de la liste prise en argument. Voici un exemple pour illustrer mes propos :

unique([1, 2, 5, 6, 3, 2, 1, 5, 6, 8, 9]) ---> [1, 2, 5, 6, 3, 8, 9]
unique3d([1+i, 1, 2+i, 2, 1+i, 1, 5+6*i, 3, 5+6*i, 3, 2+i, 2, 8+9*i, 1]) ---> [1+i, 1, 2+i, 2, 5+6*i, 3, 8+9*i, 1]

Deuxième macros qui pourrait être utile : match(<Liste1>, <Liste2>). Cette macro renverrait la position de la première occurence des éléments de liste 1 dans liste 2 (et 0 si l'élément en question ne figure pas dans liste2. Un exemple :

match([1, 5, 8, 2, 1, 7, 4], [1, 4, 5, 8, 9, 6, 3, 2, 4, 5, 8, 9, 6]) ---> [1, 3, 4, 8, 1, 0, 2]

Bien sûr, un équivalent 3d de match serait aussi le bienvenu...

Alors? T'en penses quoi?
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Future version 1.95

Messagepar P.Fradin » 26 Oct 2009 19:10

J'en pense que ce n'est pas un soucis, en fait tu devrasi regarder du côté de la commande Inserer3D() je pense qu'elle te rendrait bien des services pour construire les polyèdres! en effet: elle sert à ranger un point3D dans liste sans doublons (à $ \epsilon $ près), et elle renvoie la position de ce point dans la liste!

Code: Tout sélectionner
{ unique( liste ): renvoie la liste sans doublon }
   [$L:=Nil,
    $aux:= for $z in %1 do Inserer3D(L,[z,0]) od,
    for z in L by 2 do z[1] od
   ]


Code: Tout sélectionner
{ unique3d( liste3d): renvoie la liste de point3d sans doublons }
   [ $L:=Nil,
    $aux:= for $z in %1 by 2 do Inserer3D(L,z) od,
    L
   ]


Code: Tout sélectionner
{ match( L1, L2): renvoie la liste des 1eres occurences des éléments de L1 dans L2 }
   for $z in %1 do
       $p:=Pos(z,%2),
       if p=Nil then 0 else p[1] fi
   od


Code: Tout sélectionner
{ match3d( L1, L2): renvoie la liste des 1eres occurences des éléments de L1 dans L2 }
   for $z in %1 by 2 do
       $p:=Pos3d(z,%2),
       if p=Nil then 0 else p[1] fi
   od
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Future version 1.95

Messagepar Alphonse Capriani » 28 Oct 2009 17:13

Ah ouais!!! Pas mal!!!

Je connaissais pas cette fonction Inserer3D. Comme quoi, je fais bien de relire la doc du début à la fin...

Sinon, j'ai pris un peu de retard pour les antidiamants croisés. Je vais malgré tout faire en sorte que cette histoire soit définitivement bouclée d'ici la fin de la semaine...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Suivant

Revenir vers Version intermédiaire

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron