Cuboctaedre

Page 2 sur 4 Précédent  1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Cuboctaedre

Message  Joffrey le Mer 25 Mar - 1:16

Jean-François a écrit :
Je te laisse les deux miens si tu veux Laughing
Ca ne m'étonne pas de toi!!! T'as qu'à dire que tu as trop de boulot aussi... Wink

Bonne soirée (nuit)

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Alphonse Capriani le Mer 25 Mar - 11:50

Salut tout le monde!!!

Joffrey a écrit:Pour en revenir au sujet initial, ce que j'entendais par exemple "simple" c'était les codes qui te permettaient d'obtenir les solides de la doc; néanmoins le travail effectué est déjà énorme.
Euh... Je dois admettre que j'ai toujours du mal à comprendre où tu veux en venir. Tu pourrais donner un exemple précis de syntaxe que tu aimerais avoir? Ca me serait très utile.

Je reviens quand même sur les différentes façons de dessiner un polyèdre avec PolyedresII.mac. Elles sont expliquées dans la doc il me semble, mais vu que le pdf en question à été bâclé, les explications s'y trouvant ne sont peut être pas très claires :
Tous les solides de la doc peuvent être construit très simplement. Il possèdent tous la même syntaxe :

Polyedre(<Centre>, <Sommet>, [F1], [F2], ..., [Fn], [A])

où encore :

Polyedre(<Axe>, <Sommet>, [F1], [F2], ..., [Fn], [A])


Pour dessiner par exemple le dodécaèdre adouci, on utilise alors la syntaxe suivante :

Code:
[
DodecaedreAdc(Origin, [1+i, 1], Pentagones, Triangles1, Triangles2, Triangles3, Aretes),
Build3D(Pentagone, Triangles1, Triangles2, Triangles3, Aretes),
Display3D()
]
Pour pouvoir faire la même chose avec POVray, il faut bidouiller un peu avec les liste renvoyées par les macros, mais ca se fait bien. Je modifierais prochainement PolyedresII.mac pour inclure l'option POVray...

Avec la commande DrawPoly (uniquement avec les polyèdres convexes!), on peut même dessiner ces solides de manières encore plus simple en utilisant la syntaxe suivante :

DrawPoly(Polyedre(), 4)

Il n'est plus indispensable de fournir le centre et un sommet : le polyèdre dessiné sera centré à l'origine.
Je pense qu'on peut pas vraiment faire plus simple!!!

Néanmoins, je pense que pour pouvoir manipuler les polyèdres plus facilement, je suggère que Patrick inclue une nouvelle macro dans TeXgraph.

Face(<Polyèdre>, <liste de n° de face>)

Cette macro renverrait les faces du polyèdres correspondant au numéros de la liste. AInsi, il serait facile de récupérer certaines faces du polyèdres sans avoir a parcourir tous les élément de la liste de facettes correspondant.

Joffrey a écrit:
Alphonse Capriani a écrit:faire une macro de patron pour chaque polyèdre!!! Ca risque de prendre du temps (je rappelle que l'on a 92 polyèdres de Johnson!!!)
Alors au boulot, on est 50 membres enregistrés ça fait moins de deux par personnes. Laughing
Ouais... Je dois admettre que là, c'est pas ma priorité!!! Dans un premier temps, je vais essayer de gérer ca pour les polyèdres réguliers et pour les solides d'Archimède les plus simples. Pour le reste de la liste, il faudra patienter encore un peu (sauf si quelqu'un connait un bon algorithme pour pouvoir les créer automatiquement!!!)

Surtout, n'hésitez pas à critiquer mon travail et à donner vos suggestions : ca fait bouger les choses!

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Mer 25 Mar - 14:45

Bonjour à tous,

Ce qui serait utile je pense dans la doc ce sont des illustrations comme celle-ci:


_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Alphonse Capriani le Mer 25 Mar - 15:15

Pas de problème : je prends note...

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Mer 25 Mar - 16:55

Bonjour à tous

Code:
[
Color1:=lightpink, opacity:=1, contrast:=0.75,
ColorL:=gray, StyleL:=Thicklines+i*dashed,
GdDodecaedre(Origin, [1, 0], P, A),
Build3D(P, A),
Display3D()
]

J'ai remis le nez dans la doc d'Alphonse, l'exemple ci-dessus n'est pour moi pas clair du tout.
Je comprends bien que l'on veut représenter un grand dodécaèdre dont le centre est l'origine et dont un point du polyèdre est [1,0] mais le reste est pour moi obscur.
Si je relis la doc, je comprends que P correspond au style des faces et A au style des arêtes.
Mais que deviennent-ils si comme Patrick je veux des couleurs différentes pour les faces?

Alphonse Capriani a écrit :
Euh... Je dois admettre que j'ai toujours du mal à comprendre où tu veux en venir. Tu pourrais donner un exemple précis de syntaxe que tu aimerais avoir? Ca me serait très utile.

Sur la première page de ta présentation, tu as représenté 5 polyèdres, le code permettant d'obtenir chacune d'elles aiderait (enfin je pense) à comprendre, à utiliser tes macros.

Bonne journée

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Alphonse Capriani le Mer 25 Mar - 20:00

Ok Joffey! Je me doutais que c'était sur ce point que ca coïncait!!

Je t'explique tout ca :

Dans la syntaxe Polyedre (<Centre>, <Sommet>, [F1], ..., [Fn], [A]), les arguments F1, ..., Fn et A sont des noms de variables. Donc, si tu tapes Cube(Origin, [1+i, 1], F, A), alors la liste des faces du
cubes sera enregistrée dans la variable F et les aretes du cube seront enregistrées dans la variables A.

En fait, ces variables ne contiennent pas que la liste des faces (resp. des arêtes) : elle contiennent égalemnt les attibuts des faces (resp. des arêtes).
Ainsi, dans mon exemple précédent, la variable F va contenir après éxécution la liste suivante :

[1+i*contrast, Color1+i*opacity, liste des facettes]

La valeur de contrast permet d'accentué le contrast entre les différentes faces. Pour les polyèdres simples (Platon, Archimède, Johnson), ce paramètre est pas très utile. Il le devient avec des polyèdres non convexes plus compliqués. Le paramètre opacity permet quant à lui de changer l'opacité des faces.

Le paramètre Color1 désigne la couleur du premier type de face. Pour le cube, on a qu'un seul type de faces, donc on utilise la constante Color1. Dans le cas du dodécaèdre adouci que j'avais posté précédement, on a 3 types de faces dont les couleurs sont respectivement Color1, Color2 et Color3. Pour modifier la couleur d'un type de face, il suffit juste de modifier la valeur de Color1 (ou Color2, Color3)

Ainsi, Color1:=lightblue exécuté avant la macro cube précédente permettrait d'obtenir un cube à face bleue .

Pour les arêtes, ca marche pareil : dans l'exemple précédent, la valeur de A après exécution de la macro Cube est de cette forme :

[2, ColorL, StyleL, liste d'arêtes]

Il est possible que je me trompe dans l'ordre des vakleurs. Ce qu'il faut retenir, c'est que l'on change la couleur des arêtes en modifiant la valeur de ColorL et le style de ligne des arêtes par la modification de StyleL=LineStyle+i*Width.

Les listes affectées dans les noms de variables pris en paramètre des macros sont formatées pour qu'elles puissent être utilisées directement avec Build3D : c'est ce qui complique un peu les choses. Ainsi, si tu tabe ensuite :

Build3D(F, A)
Display3D()

tu obtiendra un joli cube!

J'espère avoir été un peu plus clair que dans ma doc (mais j'en suis pas sur!!! Rolling Eyes)

Joffrey a écrit:Sur la première page de ta présentation, tu as représenté 5 polyèdres, le code permettant d'obtenir chacune d'elles aiderait (enfin je pense) à comprendre, à utiliser tes macros.
Tout à fait!!! Je vais le faire dans la future version et enrichir mon pdf d'exemples avec code à l'appui...

Je vais fabriquer quelques exemples ce soir et je les posterai demain avec le code permettant de les dessiner : après ca, la création de polyèdres sous TeXgraph n'aura plus de secret pour toi...

D'ici là, si t'as d'autres questions ou suggestions, surtout n'hésite pas...

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Mer 25 Mar - 20:19

Merci beaucoup pour ces explications et d'avoir pris le temps de le faire, les codes deviennent beaucoup plus clair maintenant.
Il me reste toutefois une chose importante à faire : utiliser (convenablement) polyedreII.mac.

Les questions et les suggestions viendront surement après...

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Mer 25 Mar - 21:10

Je vais essayer de compléter un peu ce qu'a dit Alphonse. En fait il y a plusieurs façons de dessiner les polyèdres du fichiers PolyedresII.mac:

1) celle invoquée par Alphonse qui permet de dessiner les polyèdres dans une scène 3D avec Build3D et Diplay3D. Elle s'applique à tous les polyèdres convexes ou non. L'idée est d'invoquer la macro correspondant au polyèdre et celle-ci nous renvoie les différentes faces et arêtes dans des variables prêtes à l'emploi dans Build3D.

2) il y a une autre façon car chacune de ces macros renvoit également la liste de toutes les facettes du polyèdres, par exemple:

Code:

[ D:=Cuboctaedre(Origin, [1, 0]),
DrawFacet(D, [color:=steelblue])  ]

donnera:



Par contre dans cette façon de faire il n'y a pas de distinction entre les différentes types de faces, et cela ne marche pas pour tous les polyèdres non convexes. Mais cela permet par exemple d'utiliser povray:

Code:

[D:=Cuboctaedre(Origin, [3, 0]),
povScene(
        povFacet(D, [color:=steelblue]),
        povLine( Aretes(D) )
        ),
display3D() ]



Il manque une troisième possibilité, c'est de faire comme dans la première façon mais avec povray:

Code:

[Cuboctaedre(Origin, [3, 0], Carres, Triangles, aretes),
povScene(
        povFacet(Carres[3,0], [color:=steelblue]),
        povFacet(Triangles[3,0], [color:=firebrick]),
        povLine( aretes[4,0], [color:=gold] )
        ),
display3D()]



L'inconvenient est qu'il faut extraire soi-même les données par exemple: Carres[3,0] renvoit la liste des éléments de Carres à partir du troisième (car comme l'a dit Alphonse les deux premiers termes ne font pas partie des faces). Il faudrait ajouter deux macros: GetFacet et [i]GetAretes[i] qui fassent ce travail ce qui donnerait:

Code:

[Cuboctaedre(Origin, [3, 0], Carres, Triangles, aretes),
povScene(
        povFacet(GetFacet(Carres), [color:=steelblue]),
        povFacet(GetFacet(Triangles), [color:=firebrick]),
        povLine( GetAretes(aretes), [color:=gold] )
        ),
display3D()]

mais on pourrait aussi envisager une modification de PolyedresII.mac de manière à ce qu'il gère tout seul la sortie povray, auquel cas on pourrait faire directement:

Code:

[Cuboctaedre(Origin, [3, 0], Carres, Triangles, aretes),
povScene(Carres,  Triangles,  aretes),
display3D()]

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Alphonse Capriani le Jeu 26 Mar - 15:45

Salut salut!!!

Comme prévu, je poste quelques exemples d'utilisation des macros de polyedresII.mac. Visiblement, c'est peut être inutile, mais bon : ca rend le sujet attractif!!!

Code:
{Test01 - Dodécaèdre adouci}
[
Color1:=white, Color2:=Light(crimson, 0.5), Color3:=crimson,
StyleL:=12+i*dotted,
DodecaedreAdc(Origin, [1+i, 1], Ptg, Tr1, Tr2, Ar),
Build3D(Ptg, Tr1, Tr2, Ar),
Display3D()

Code:
{Test02 - Grand icosicosidodécaèdre}
[
Color1:=dimgray, Color2:=Light(dimgray, 0.66), Color3:=Light(dimgray, 0.33),
StyleL:=12,
GdIcosicosidodecaedre(Origin, [1+i, 1], F1, F2, F3, A),
Build3D(F1, F2, F3, A),
Display3D()
]
Code:
{Test03 - Hebesphéno-rotonde triangulaire}
[
Color1:=crimson, Color2:=gold,
Color3:=slateblue, Color4:=ghostwhite,
opacity:=0.75,
StyleL:=12, ColorL:=purple,
Johnson(92, Origin, [1+i, 1], F1, F2, F3, F4, A),
Build3D(F1, F2, F3, F4, A),
Display3D()
Code:
{Test04 - Fusion de polyèdres}
[
Color1:=crimson, Color2:=gold, Color3:=slateblue,
opacity:=1,
StyleL:=12, ColorL:=purple,
Johnson(80, [Origin, vecK], [1, 0], F1, F2, F3, F4, A),
Color1:=dimgray, Color2:=ghostwhite, Color3:=lightblue,
opacity:=0.85,
Archimede(12, [Origin, -vecK], [1, 0], G1, G2, G3, B),
Build3D(F1, F2, F3, F4, A, G1, G2, G3, B),
Display3D()
]
Code:
{Test05 - Utilité de la constante contrast}
[
background(full, Light(lightpink, 0.8)),
opacity:=1, contrast:=0.5,
Color1:=crimson, Color2:=gold, Color3:=navy,
ColorL:=Light(gray, 0.5), StyleL:=Thicklines,
PolyNC(15, [-1, 0], [-1, 1], A1, B1, C1, D1),
contrast:=1.5,
PolyNC(15, [1, 0], [1, 1], A2, B2, C2, D2),
Build3D(A1, B1, C1, D1, A2, B2, C2, D2),
Display3D()
]
Code:
{Test06 - Solides de Kepler-Poinsot}
[
background(full, Light(lightgreen, 0.5)),
Color1:=forestgreen, opacity:=1,
ColorL:=ghostwhite, StyleL:=thicklines,
PtDodecaedreEt([-1+i, 0], [-1+i, 0.8], A, B),
Color1:=lightgray, ColorL:=navy,
GdDodecaedreEt([1+i, 0], [1+i, 0.8], C, D),
Color1:=ghostwhite, ColorL:=dimgray,
GdDodecaedre([-1-i, 0], [-1-i, 0.8], E, F),
Color1:=seagreen, ColorL:=gray,
GdIcosaedre([1-i, 0], [1-i, 0.8], G, H),
Build3D(A, B, C, D, E, F, G, H),
Display3D()
]

P.Fradin a écrit:mais on pourrait aussi envisager une modification de PolyedresII.mac de manière à ce qu'il gère tout seul la sortie povray, auquel cas on pourrait faire directement:
Oui oui Patrick : j'avais évoqué cette possibilité dans un de mes précédents posts. Je vais prochainement retoucher PolyedresII.mac pour corriger tous ces détails. Je retoucherai par la même occasion à la doc qui à été bâclée. Affaire à suivre...


Dernière édition par Alphonse Capriani le Ven 27 Mar - 14:56, édité 1 fois

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Jeu 26 Mar - 21:01

Bonsoir à tous,

Merci Alphonse pour les exemples, je commence à y voir clair.
Je sollicite encore vos lumière:
Est-il possible d'affecter une couleur différente (choisi par l'utilisateur) a chaque face d'un polyédre indépendamment de sa forme.
Pour être clair, puis-je affecter aux six faces d'un cube, six couleurs différentes tout en gardant sa définition de polyèdre convexe ?

Tout le monde me suis?

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Jeu 26 Mar - 21:15

Bonjour,

Oui on peut récupérer les faces et les travailler isolément ou dans une boucle "for", par exemple:

Code:

$P:=Cube([0,0], [4,0]),
couleurs:=[blue, red, yellow, green, orange, gray, purple], k:=0,
Build3D(
        for face in P By jump do
            Inc(k,1),
            bdFacet( face, [color:=couleurs[k], opacity:=0.75]), Re(jump)-i
        od ,
        bdLine( Aretes(P) )
        ),
Display3D()   

donnera



Tout est dans la boucle "for": on parcourt la liste P par composante (deux composantes sont séparées par la constante jump), dans le cas des polyèdres une composante est une liste de points 3D représentant les sommets d'une facette, cela revient à parcourir le polyèdre par face, la variable face de la boucle contient donc successivement les différentes faces du polyèdre P.

Détail technique: la boucle "for" renvoie une liste, pour faire comprendre à la commande Build3D qu'il y a plusieurs objets dans cette liste, on les sépare par la constante Re(jump)-i.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Jeu 26 Mar - 22:25

Re,
Merci j'aurais pu chercher un moment.

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Alphonse Capriani le Ven 27 Mar - 11:07

Salut tout le monde!!!

Je viens de regarder ton précédent code Patrick et je viens de découvrir une syntaxe de la boucle for :

For <z> in <liste> By jump do

Je suppose que cette syntaxe récupère successivement toutes les composantes d'une liste (où les composantes sont justement séparées par des jump). Dans ce cas, ca simplifie la création de la macro Face que j'avais évoqué précédement :

Face(<Polyèdre>, <Nos de faces>)

Cette macro renverrais la liste des faces dont les numéros sont données dans la liste (2ème argument)
Je pense que cette macro pourrait être très utile : je te (re)suggère de l'inclure dans la future version de TeXgraph...

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Ven 27 Mar - 21:24

Bonsoir,

Effectivement, il y a déjà les commandes suivantes:

Sommets( polyedre ): qui renvoie la liste des sommets du polyèdre.

Aretes( polyedre ): qui renvoie la liste des arêtes du polyèdre.

Il manque une commande pour avoir des faces particulières d'un polyèdre, ce pourrait être ceci:

Code:

{ FacesNum( polyedre, [liste de numéros] ) }
[$L:=%2, Sort(L),
$compt:=0, $k:=1, $num:=L[1], $F:=Nil,
 for $z in %1 do
  if Re(z)=Re(jump) then
    Inc(compt,1),
    if compt=num then F,z, Inc(k,1), num:=L[k] fi,
    F:=Nil
  else Insert(F,z)
  fi
 od
]

Et pour avoir des arêtes particulières:

Code:

{ AretesNum( polyedre, [liste de numéros] ) }
FacesNum(Aretes(%1), %2)

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Ven 27 Mar - 23:40

Bonsoir,
Pourrais-tu mettre un exemple de l'utilisation de FacesNum.
Chez moi ça ne donne rien, je dois surement mal l'utiliser.

Désolé d'être un assisté...

Je reviens sur le récuperation des facettes, et je reste sur mon exemple du cube, quand tu dis qu'on récupère les facettes et qu'on les travail séparément.
Tu utilises DrawFacet pour chaque face ?

Bonne soirée

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Sam 28 Mar - 0:30

Bonsoir Joffrey,

Un exemple avec DrawFacet:

Code:

[ P:=Cube([0,0], [3,0]),
FillOpacity:=0.75,
DrawFacet( FacesNum(P,1), [color:=blue],
          FacesNum(P,2), [color:=green],
          FacesNum(P,3), [color:=red],
          FacesNum(P,4), [color:=yellow],
          FacesNum(P,5), [color:=purple],
          FacesNum(P,6), [color:=gray]
          ) ]

La même chose avec Build3D:

Code:

[ P:=Cube([0,0], [3,0]),
couleur:=[blue,green,red,yellow,purple,gray],
Build3D( for k from 1 to 6 do
          bdFacet( FacesNum(P,k), [color:=couleur[k], opacity:=0.75]),
          Re(jump)-i
          od,
          bdLine(Aretes(P) )
      ),
Display3D() ]

L'avantage de Build3D est que l'on peut mettre plusieurs objets dans la scéne.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Sam 28 Mar - 14:21

Salut,

Dis moi,pourquoi le code :
Code:
[
$P:=Parallelep(0,vecI,vecJ,vecK),
povScene(
povFacet(FacesNum(P,1), [color:=orange]),
povFacet(FacesNum(P,2), [color:=green]),
povFacet(FacesNum(P,3), [color:=red]),
povFacet(FacesNum(P,4), [color:=yellow]),
povFacet(FacesNum(P,5), [color:=purple]),
povFacet(FacesNum(P,6), [color:=gray]),
povLine(Aretes(P)),
),
Display3D()
]

ne fonctionne pas alors que le code :

Code:

[
$P:=Cube([0,0],[4,0]),
povScene(
povFacet(FacesNum(P,1), [color:=orange]),
povFacet(FacesNum(P,2), [color:=green]),
povFacet(FacesNum(P,3), [color:=red]),
povFacet(FacesNum(P,4), [color:=yellow]),
povFacet(FacesNum(P,5), [color:=purple]),
povFacet(FacesNum(P,6), [color:=gray]),
povLine(Aretes(P)),
),
Display3D()
]

fonctionne? Pourtant, Parallelep et PolyedreII.mac utilisent MakePoly toutes les deux, non?
Cela vient-il de l'ordre où sont créer les faces?

Bonne journée

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Sam 28 Mar - 14:31

Salut Joffrey,

Cette isntruction:

Code:

$P:=Parallelep(0,vecI,vecJ,vecK),

n'est pas valide, c'est:

Code:

$P:=Parallelep([0,0],vecI,vecJ,vecK),

c'est un point3D qu'il faut en premier argument.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Sam 28 Mar - 15:50

Oui, bien sûr, en recopiant j'ai tronqué ce que je voulais écrire :
J'ai crée un macro DessinCube :

Code:
[
$P:=Parallelep(%1,%2*vecI,%3*vecJ,%4*vecK),
povFacet(FacesNum(P,1), [color:=white]),
povFacet(FacesNum(P,2), [color:=green]),
povFacet(FacesNum(P,3), [color:=red]),
povFacet(FacesNum(P,4), [color:=yellow]),
povFacet(FacesNum(P,5), [color:=purple]),
povFacet(FacesNum(P,6), [color:=gray]),
povLine(Aretes(P))
]

que j'appelle avec :

Code:

[
backcolor:=dimgray,
povScene(
              DessinCube(Origin,1,1,1),
),
Display3D()
]

Et là problème! Alors que si je rentre dans un élément Utilisateur :
Code:
[
$P:=Parallelep(Origin, vecI, vecJ,vecK),
povScene(
povFacet(FacesNum(P,1), [color:=orange]),
povFacet(FacesNum(P,2), [color:=green]),
povFacet(FacesNum(P,3), [color:=red]),
povFacet(FacesNum(P,4), [color:=yellow]),
povFacet(FacesNum(P,5), [color:=purple]),
povFacet(FacesNum(P,6), [color:=gray]),
povLine(Aretes(P)),
),
Display3D()
]

Pas de problème, mais cette macro DessinCube me serais bien utile.

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Sam 28 Mar - 16:08

Effectivement.

Il y a une subtilité à ce niveau là: dans ton premier code

Code:

[
backcolor:=dimgray,
povScene(
              DessinCube(Origin,1,1,1),
),
Display3D()
]

la macro povScene s'attend à un seul élément à dessiner (ce que j'appelle un élément c'est un truc qui commence par povMachin(...) ), alors que la macro DessinCube renvoie une liste d'éléments povMachin(...). Pour que povScene comprenne qu'il y a plusieurs éléments dans cette liste, il faut les séparer par la constante: Re(jump)-i, je sais, ce n'est pas commode, il faudrait lui donner un nom à cette constante! C'est donc la macro DessinCube qu'il faut modifier comme ceci:

Code:

[
$P:=Parallelep(%1,%2*vecI,%3*vecJ,%4*vecK),
povFacet(FacesNum(P,1), [color:=white]),Re(jump)-i,
povFacet(FacesNum(P,2), [color:=green]),Re(jump)-i,
povFacet(FacesNum(P,3), [color:=red]),Re(jump)-i,
povFacet(FacesNum(P,4), [color:=yellow]),Re(jump)-i,
povFacet(FacesNum(P,5), [color:=purple]),Re(jump)-i,
povFacet(FacesNum(P,6), [color:=gray]),Re(jump)-i,
povLine(Aretes(P)),Re(jump)-i
]

Dans ton deuxième exemple, il n'y a pas ce problème car la macro povScene "voit" les éléments séparément (un par argument de la macro).

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Sam 28 Mar - 16:13

Super, je peux aller plus loin dans mon projet.

Merci

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Alphonse Capriani le Lun 30 Mar - 13:26

Ah aaah!!! Un projet secret?

Il consiste en quoi?

J'espère que t'empiète pas sur mes travaux concernant les polyèdres ou Alphonse va s'énerver... Laughing

A ce propos, je suis en train de modifier PolyedresII.mac en tenant compte des diverses remarques et suggestions qui ont été faites précédemment. Je vais essayer de poster une mise à jour très prochainement avec doc à l'appui. (Ca va encore retarder la finition de mon mystérieux projet tout ca Rolling Eyes) Je vous tiens au courant...

Alphonse Capriani

Nombre de messages : 374
Age : 56
Localisation : East Harlem - NY
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur http://www.mediafire.com/?sharekey=61c7f7ce30421d314012e8015643d

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Mar 31 Mar - 20:40

Salut tout le monde,

Et bien moi aussi j'avais un projet Laughing Et il est bien avancé! J'ai ajouté un export jvx à la prochaine version test de TeXgraph. Ce format est le format de l'applet Java du nom de JavaView, plus de renseignements ici.

Et voici une demo ici. Cela suppose que vos ayez java installé sur votre machine, et que votre browser autorise les applets java. Je vous laisse découvrir.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Joffrey le Mar 31 Mar - 20:49

Bonsoir à tous,

Ohhhh PUREE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! c'est génial!!!!

je prendrais le temps de découvrir cette nouvelle fonctionnalité, mais déjà ça me plaît.

Joffrey

Nombre de messages : 179
Age : 35
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

Voir le profil de l'utilisateur http://mathex.servhome.org

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  P.Fradin le Mar 31 Mar - 20:58

Joffrey a écrit:
Ohhhh PUREE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! c'est génial!!!!

Salut Joffrey,

Je pense aussi que c'est une fonctionnalité très intéressante. On peut aussi utiliser cette applette en local.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Cuboctaedre

Message  Contenu sponsorisé Aujourd'hui à 2:07


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 4 Précédent  1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum