TeXgraph
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

Problème sur les listes

2 participants

Aller en bas

Problème sur les listes Empty Problème sur les listes

Message  Joffrey Mar 23 Déc - 12:06

Bonjour,

Je souhaite faire un travail sur les listes, et j'ai en fait un double indice qui me pose un problème.
Voici :
Je construit ma liste de départ, mettons
Code:
L:=[1,i,-1]
je souhaite "transformer cette liste" en
Code:
L:=Liste(for k from 1 to 2 do 4*L[k]-2*L[k+1] od,1)
pour construire
Code:
Ligne(for z from 1 to 3 do L[k] od,1)
Jusque la pas de souci.

Mon problème est que je voudrais appliquer a cette nouvelle liste la même transformation pour construire un nouveau triangle.

Je peux évidemment le faire à la main s'il y a moins de 10 itérations mais si je veux en faire 50 ça devient vite fastidieux.

Comment je peux régler ce problème de double indice?

Bonne journée

Joffrey

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

http://mathex.servhome.org

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  P.Fradin Mar 23 Déc - 14:34

Joffrey a écrit:Bonjour,

Bonjour Joffrey,


Je souhaite faire un travail sur les listes, et j'ai en fait un double indice qui me pose un problème.
Voici :
Je construit ma liste de départ, mettons
Code:
L:=[1,i,-1]
je souhaite "transformer cette liste" en
Code:
L:=Liste(for k from 1 to 2 do 4*L[k]-2*L[k+1] od,1)

Pour une petite liste ça va, mais il faut savoir que les accés aux éléments d'une liste comme L[k] et L[k+1] correspondent à un parcours de liste, pour une liste à n éléments tu fais donc en gros n^2 parcours (partiels) de la liste! Je te propose plutôt ça (un seul parcours):

Code:

old:=Nil,
L:= [for z in L do 4*old-2*z , old:=z od, L[1] ]


pour construire
Code:
Ligne(for z from 1 to 3 do L[k] od,1)

Inutile de reparcourir la liste! La commande Ligne prend un liste en paramètre:

Code:
Ligne( L ,1)


Mon problème est que je voudrais appliquer a cette nouvelle liste la même transformation pour construire un nouveau triangle.
Je peux évidemment le faire à la main s'il y a moins de 10 itérations mais si je veux en faire 50 ça devient vite fastidieux.
Comment je peux régler ce problème de double indice?

A l'aide d'une boucle:

Code:

L:=[1,i,-1], Ligne(L, 1),
for k from 1 to 50 do
  L:= [ old:=Nil, for z in L do 4*old-2*z , old:=z od, L[1] ],
 Ligne( L, 1)
od

ou encore mieux (une seule instruction Ligne)

Code:

L:=[1,i,-1],
Ligne([L, for k from 1 to 50 do
              old:=Nil,
              L:= [ for z in L do 4*old-2*z , old:=z od, L[1] ],
              L
              od
      ], 1)
P.Fradin
P.Fradin
Admin

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

http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  Joffrey Mar 23 Déc - 22:08

Re,

Voici en fait la petite macro que j'essaie de mettre au point :


Code:
% TeXgraph version 1.94 beta-7.3.5
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-5#5#-5#5#1#1##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),
ModelView(ortho)]##
% Déclaration des Variables Globales
15#r#5##
15#N#3##
15#nbit#50##
15#couleur#Rgb(Rand(),Rand(),Rand())##
15#pas#0.05##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Utilisateur)
14#objet1#[
FillStyle:=full,
Color:=white-(0.3+0.7/N)*couleur,
FillColor:=(0.3+0.7/N)*couleur,

L:=Liste(for k from 0 to N do r*exp(2*i*k*pi/N) od),
Ligne([L, for k from 1 to nbit do
              old:=Nil,
              L:= [ for z in L do (1-pas)*old+pas*z , old:=z od, L[1] ],
              L
              od
      ], 0)
]#
-1##

Qui permet de dessiner des polygones "tournants".

Lorsque je prends par exemple, nbit=1 (nombres d'itérations égal à 1), j'ai un souci pour le deuxième triangle, as tu une solution?

Joffrey

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

http://mathex.servhome.org

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  P.Fradin Mar 23 Déc - 23:12

Bonsoir joffrey,

Il y a quelque petits problèmes avec la commande Ligne, je te propose ceci pour rectifier:

Code:

L:=Liste(for k from 1 to N do r*exp(2*i*k*pi/N) od),
Ligne([L, jump,
          for k from 1 to nbit do
              old:=Nil,
              L:= [ for z in L do (1-pas)*old+pas*z , old:=z od, pas*L[1]+(1-pas)*old ],
              L,jump
              od
      ], 1)

Il y avait un point de trop dans L, il manquait un saut entre chaque triangle, et il manquait la barycentration pour le dernier point.

Par contre je ne comprend pas trop ce que tu fais avec les couleurs! Celles-ci ne sont pas compatibles avec les opérations algébriques. Par exemple:


Color:= white-(0.3+0.7/N)*couleur,

Je suppose que tu veux faire un mixe, c'est possible de faire un barycentre comme ceci:
Color := MixColor( white, 1, couleur, -(0.3+0.7/N))

mais je ne garantis rien si on obtient des composantes négatives!

D'autre part, je suppose que tu veux changer la couleur de fond pour chaque triangle, je te propose alors ceci (une commande Ligne par triangle):

Code:

[
FillStyle:=full,
Color:=MixColor(white,1,couleur,-(0.3+0.7/N)),
FillColor:=white,

L:=Liste(for k from 1 to N do r*exp(2*i*k*pi/N) od),
Ligne(L,1),
for k from 1 to nbit do
              old:=Nil,
              L:= [ for z in L do (1-pas)*old+pas*z , old:=z od, pas*L[1]+(1-pas)*old ],
              FillColor:= MixColor(white,nbit-k,couleur,k),
              Ligne(L,1)
      od
]

mais on peut aussi faire une seule commande Ligne pour tous les triangles "tournés":

Code:

[
FillStyle:=full,
Color:=MixColor(white,1,couleur,-(0.3+0.7/N)),
FillColor:=white,

L:=Liste(for k from 1 to N do r*exp(2*i*k*pi/N) od),
Ligne(L,1),
Ligne(for k from 1 to nbit do
              old:=Nil,
              L:= [ for z in L do (1-pas)*old+pas*z , old:=z od, pas*L[1]+(1-pas)*old ],
              L, Re(jump)+i*(2+MixColor(white,nbit-k,couleur,k))
      od, 1)


Problème sur les listes Triang10
P.Fradin
P.Fradin
Admin

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

http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  Joffrey Mer 24 Déc - 0:16

Re,

effectivement tout fonctionne correctement, merci.

Pour les couleurs, j'ai essayé de faire quelque chose d'original; mais j'en conviens ce que tu as fait est bien mieux.

J'avais trouvé ces petits dessins assez sympa, voici un petit mix de ce qu'on peut faire :
Problème sur les listes Polygone_tournant

Je vais essayé d'utiliser MixColor (que je ne connaissais pas) pour la couleurs du fond.

Merci et bonne soirée

Joffrey

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

http://mathex.servhome.org

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  P.Fradin Mer 24 Déc - 0:27

Oui ça fait de jolis dessins! Alphonse avait initié cette idée pour des faire de polyèdres creux que l'on peut trouver dans ce fil:
https://texgraph.forumpro.fr/questions-reponses-f3/polyedresiimac-t3-125.htm

Quant à MixColor, c'est normal, elle n'est pas encore documentée Laughing


Dernière édition par P.Fradin le Mer 24 Déc - 15:49, édité 1 fois
P.Fradin
P.Fradin
Admin

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

http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  Joffrey Mer 24 Déc - 14:38

Bonjour,

effectivement je n'avais pas cherché du côté de polyèdres.mac.

Merci et bonne journée

Joffrey

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

http://mathex.servhome.org

Revenir en haut Aller en bas

Problème sur les listes Empty Re: Problème sur les listes

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser