FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Form(résolu)
Rotation Algorithm n°3 Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Rotation Algorithm n°3 Emptypar Marc Hier à 11:42

» Bataille navale SM
Rotation Algorithm n°3 Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Une calculatrice en une ligne de programme
Rotation Algorithm n°3 Emptypar jean_debord Ven 26 Avr 2024 - 8:01

» Gestion d'un système client-serveur.
Rotation Algorithm n°3 Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Rotation Algorithm n°3 Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Rotation Algorithm n°3 Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Rotation Algorithm n°3 Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Rotation Algorithm n°3 Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Rotation Algorithm n°3 Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Rotation Algorithm n°3 Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Rotation Algorithm n°3 Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Rotation Algorithm n°3 Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Rotation Algorithm n°3 Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Rotation Algorithm n°3 Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 Rotation Algorithm n°3

Aller en bas 
+2
sergeauze
Parpaiun
6 participants
AuteurMessage
Parpaiun

Parpaiun


Nombre de messages : 192
Age : 84
Localisation : HERAULT
Date d'inscription : 15/04/2015

Rotation Algorithm n°3 Empty
MessageSujet: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 15:22

Enfin, ça y est ! J'ai terminé mon programme qui m'a demandé 24 heures en tout sur 4 jours de travail sur mon ordinateur personnel !

Lancez le et regardez le défilé automatique de 9 images toutes différentes jusqu'à la dernière, ceci pour vous épargner d'éreintantes manipulations !

Code:
REM ===================================================================
REM
REM                    ROTATION ALGORITHM
REM
REM ===================================================================
REM  Auteur: Parpaiun
REM  Date-version: 23/06/2015
REM ===================================================================
LABEL retour
DIM a,cx,cy,f,i,j,l,rn,sw,u,x,y,z
DIM c(20),e(30,2),mx(24),my(24),n(40)
f=3  :' Ecart entre droites
l=3
a=0.6
FONT_SIZE 0,14

REM ===================================================================
' Paramètres de POLY
' p1 = Nombre de sommets du polygone
' p2 = Inclinaison du 1er côté en degrés
' p3 = Longueur de chaque côté
' p4 = Coordonnée en x du premier sommet
' p5 = Coordonnée en y du premier sommet
REM ===================================================================
height 0,980 : width 0,980
cx=480 : cy=475
REm  Pour centrer exactement le polygone et préciser son centre
' 2D_CIRCLE cx,cy,420
' 2D_CIRCLE cx,cy,3
' 2D_line cx,50,cx,500
REM ===================================================================
'                  ICI COMMENCE LE SPECTACLE !

For sw= 1 to 9
 SELECT sw
  CASE 1
  POLY(3,240,726,480,56)
  MID(1,2)
  MID(2,3)
  MID(3,1)
  CENTRE()
  ROTATE6(1,4,7,1,6,7)
  ROTATE6(2,5,7,2,4,7)
  ROTATE6(3,5,7,3,6,7)
  JOIN12(1,7,4,7,2,7,5,7,3,7,6,7)
  Print_locate 20,50: Print " IMAGE n°1  SUR  9"
'
  CASE 2
  POLY(3,240,726,480,56)
  MID(1,2)
  MID(2,3)
  MID(3,1)
  CENTRE()
  ROTATE3(1,4,6)
  ROTATE3(4,6,5)
  ROTATE3(4,2,5)
  ROTATE3(6,5,3)
  JOIN6(4,6,5,4,6,5)
  Print_locate 20,50: Print " IMAGE n°2  SUR  9"
'
  CASE 3
  POLY(4,225,600,480,56)
  MID(1,2)
  MID(2,3)
  MID(3,4)
  MID(4,1)
  ROTATE3(2,5,6)
  ROTATE3(4,7,8)
  ROTATE3(1,8,5)
  ROTATE3(3,6,7)
  ROTATE3(5,6,7)
  ROTATE3(5,7,8)
  JOIN10(5,6,7,6,7,8,5,8,5,7)
  Print_locate 20,50: Print " IMAGE n°3  SUR  9"
  '
  CASE 4
  POLY(4,225,600,480,56)
  MID(1,2)
  MID(2,3)
  MID(3,4)
  MID(4,1)
  MID(1,3)
  ROTATE3(1,5,9)
  ROTATE3(1,8,9)
  ROTATE3(2,5,9)
  ROTATE3(2,6,9)
  ROTATE3(3,6,9)
  ROTATE3(3,7,9)
  ROTATE3(4,7,9)
  ROTATE3(4,8,9)
  JOIN12(1,9,2,9,3,9,4,9,5,7,6,8)
  Print_locate 20,50: print " IMAGE n°4  SUR  9"
'
  CASE 5
  POLY(4,225,600,480,56)
  MID(2,4)
  JOIN4(1,3,2,4)
  ROTATE6(5,1,2,5,3,2)
  ROTATE6(5,3,4,5,1,4)
  Print_locate 20,50: print " IMAGE n°5  SUR  9"
'
  CASE 6
  POLY(5,216,530,480,56)
  MID(1,2)
  MID(2,3)
  MID(3,4)
  MID(4,5)
  MID(5,1)
  CENTRE()
  ROTATE3(11,1,6)
  ROTATE3(11,1,10)
  ROTATE3(11,2,6)
  ROTATE3(11,2,7)
  ROTATE3(11,3,7)
  ROTATE3(11,3,8)
  ROTATE3(11,4,8)
  ROTATE3(11,4,9)
  ROTATE3(11,5,9)
  ROTATE3(11,5,10)
  JOIN10(6,11,7,11,8,11,9,11,10,11)
  JOIN10(11,1,11,2,11,3,11,4,11,5)
  Print_locate 20,50: print " IMAGE n°6  SUR  9"
'
  CASE 7
  POLY(9,200,300,480,30)
  MID(5,6)
  JOIN6(4,1,7,1,10,1)
  ROTATE4(1,10,5,4)
  ROTATE4(1,10,6,7)
  ROTATE4(1,4,3,2)
  ROTATE4(1,7,8,9)
  Print_locate 20,50: print " IMAGE n°7  SUR  9"
'
  CASE 8
  POLY(12,195,230,480,30)
  JOIN4(1,7,4,10)
  MID(1,7)
  ROTATE5(1,13,4,3,2)
  ROTATE5(7,13,4,5,6)
  ROTATE5(1,13,10,11,12)
  ROTATE5(7,13,10,9,8)
  Print_locate 20,50: print " IMAGE n°8  SUR  9"
'
  CASE 9
  POLY(6,210,380,480,80)
  ROTATE6(1,2,3,4,5,6)
  ROTATE6(1,6,5,4,3,2)
  POLY(6,210,450,480,25)
  POLY(6,210,430,480,42)
  POLY(6,210,410,480,59)
  Print_locate 20,50: print " IMAGE n°9  SUR  9"
  END_SELECT

 if scancode=27 then EXIT_FOR
 PAUSE 3000
 CLS
NEXT sw

END


REM ===================================================================

SUB POLY(p1,p2,p3,p4,p5)
dim_local b,PI,RAD
PI=acos(-1): rad=PI/180 : p2=p2*RAD
x=p4 : y=p5
2D_POLY_FROM x,y  :' Coordonnées du premier sommet
i=0: u=0
u=u+1: mx(u)=x: my(u)=y
i=i+1: c(i)=u      :' Numéro du premier sommet
b=2*PI/p1
for i=2 to p1
 x=x+p3*COS(p2): y=y+p3*SIN(p2)*-1
 2D_POLY_TO x,y
 u=u+1: mx(u)=x: my(u)=y
 c(i)=u
 if i<p1+1 then p2=p2+b
next i
2D_POLY_TO mx(1),my(1)

END_SUB
rem ============================
'
SUB MID(m1,m2)
 u=u+1
 mx(u)=(mx(m1)+mx(m2))/2
 my(u)=(my(m1)+my(m2))/2
'  2D_CIRCLE mx(u),my(u),3
 i=i+1: c(i)=u
END_SUB
rem ============================

SUB CENTRE()
 2D_CIRCLE cx,cy,2
 u=u+1: mx(u)=cx: my(u)=cy
 i=i+1: c(i)=u
END_SUB
rem ============================

SUB ROTATE3(r1,r2,r3)
for j=1 to 3
 SELECT j
  CASE 1
  z=r1
  CASE 2
  z=r2
  CASE 3
  z=r3
 END_SELECT
 c(j)=z
next j
 ROTATE_ALL(3)

END_SUB
rem ==============================

SUB ROTATE4(r1,r2,r3,r4)
 for j=1 to 4
  SELECT j
  CASE 1
    z=r1
  CASE 2
    z=r2
  CASE 3
    z=r3
  CASE 4
  z=r4
  END_SELECT
  c(j)=z
next j
ROTATE_ALL(4)

END_SUB
rem =============================

SUB ROTATE5(r1,r2,r3,r4,r5)
 for j=1 to 5
  SELECT j
  CASE 1
    z=r1
  CASE 2
    z=r2
  CASE 3
    z=r3
  CASE 4
  z=r4
  CASE 5
  z=r5
  END_SELECT
  c(j)=z
next j
ROTATE_ALL(5)

END_SUB
rem =============================

SUB ROTATE6(r1,r2,r3,r4,r5,r6)
 for j=1 to 6
  SELECT j
  CASE 1
    z=r1
  CASE 2
    z=r2
  CASE 3
    z=r3
  CASE 4
  z=r4
  CASE 5
  z=r5
  CASE 6
  z=r6
  END_SELECT
  c(j)=z
next j
ROTATE_ALL(6)
END_SUB
rem ============================

SUB ROTATE_ALL(rn)
 DIM_LOCAL s$,x1,x2
 for j=1 to rn
  e(j,1)=mx(c(j))
  e(j,2)=my(c(j))
 next j
 e(j,1)=e(1,1)
 e(j,2)=e(1,2)
'
 retour:
  for j=1 to rn
  x1=(e(j+1,1)-e(j,1))*(e(j+1,1)-e(j,1))
  x2=(e(j+1,2)-e(j,2))*(e(j+1,2)-e(j,2))
  n(j)=(f*l)/sqr(x1+x2)
  if n(j)>a then EXIT_SUB
  next j
'
 for j=1 to rn
  e(j,1)=e(j,1)+n(j)*(e(j+1,1)-e(j,1))
  e(j,2)=e(j,2)+n(j)*(e(j+1,2)-e(j,2))
  if j=1
  2D_POLY_FROM e(j,1),e(j,2)
    Else
  2D_POLY_TO e(j,1),e(j,2)
  END_IF
 next j
 e(j,1)=e(1,1)
 e(j,2)=e(1,2)
  2D_POLY_TO e(j,1),e(j,2)
 s$=inkey$ : if s$<>"" then EXIT_PROC
GOTO retour
END_SUB
rem ==================================

SUB JOIN4(j1,j2,j3,j4)
 2D_LINE mx(j1),my(j1),mx(j2),my(j2)
 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
END_SUB
rem ==================================

SUB JOIN6(j1,j2,j3,j4,j5,j6)
 2D_LINE mx(j1),my(j1),mx(j2),my(j2)
 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
 2D_LINE mx(j5),my(j5),mx(j6),my(j6)
END_SUB
rem ==================================

SUB JOIN10(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10)
 2D_LINE mx(j1),my(j1),mx(j2),my(j2)
 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
 2D_LINE mx(j5),my(j5),mx(j6),my(j6)
 2D_LINE mx(j7),my(j7),mx(j8),my(j8)
 2D_LINE mx(j9),my(j9),mx(j10),my(j10)
END_SUB
rem ==================================

SUB JOIN12(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11,j12)
 2D_LINE mx(j1),my(j1),mx(j2),my(j2)
 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
 2D_LINE mx(j5),my(j5),mx(j6),my(j6)
 2D_LINE mx(j7),my(j7),mx(j8),my(j8)
 2D_LINE mx(j9),my(j9),mx(j10),my(j10)
 2D_LINE mx(j11),my(j11),mx(j12),my(j12)
END_SUB

Je rends hommage à papydall pour avoir fait son programme "Les Insectes Amoureux" par formules mathématiques.

Le fait de construire mes propres images par formules mathématiques tient de la gageure tant ces formules deviennent compliquées. Mon programme a relevé le défi par la simplicité de ses expressions semi-mathématiques.

Le challenge par les panoramiciens est désormais ouvert en matière de modifications de mon programme et de nouvelles images au delà de 9.

A Jicehel de se lancer patiemment dans les colorisations. Je l'espère façon VASARELY qui est incontournable en nuances de couleurs savamment réparties sur ses motifs géométriques... C'est un boulot de titan !

A Papydall de prouver ce qu'il avait dit: "Je peux simplifier les ROTATE en une seule ligne" ...

Allez-y, braves Panoramiciens et bon courage ! lol! lol! lol!
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 16:05

Salut
j'aime bien le rendu
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 16:47

Joli ! Rotation Algorithm n°3 18
Il y a une petite erreur ligne 309...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 17:48

Un grand bravo Parpaiun !
Tu as relevé ton propre défi.
Le programme fonctionne et ça c’est l’essentiel.
La programmation consiste avant tout à trouver des solutions à des problèmes qu’on se pose.
L’optimisation et l’amélioration viennent en second lieu.

L’erreur signalée par Nardo26
Ligne 309
Code:
 s$=inkey$ : if s$<>"" then EXIT_PROC

Bien sûr c’est EXIT_SUB au lieu de EXIT_PROC.

Parpaiun a écrit:
A Papydall de prouver ce qu'il avait dit: "Je peux simplifier les ROTATE en une seule ligne" ...

C’est chose faite.
Regarde aussi SUB ROTATE_ALL pour se passer du GOTO Retour, remplacé par WHILE / END_WHILE.

A tout moment, vous pouvez arrêter le programme par un CLICK ou par l'appui sur une touche du clavier.
J’ai aussi arrangé le code à ma façon et voici ce que ça donne

Code:

REM ============================================================================
REM
REM                    ROTATION ALGORITHM
REM
REM ============================================================================
REM  Auteur: Parpaiun
REM  Date-version: 23/06/2015
REM ============================================================================
Init()
Spectacle()

end
rem ============================================================================
SUB Init()
    DIM a,cx,cy,f,i,j,l,rn,sw,u,x,y,z
    DIM c(20),e(30,2),mx(24),my(24),n(40)
    f = 3  :' Ecart entre droites
    l = 3  : a = 0.6
    FONT_SIZE 0,14 : height 0,980 : width 0,980 : cx = 480 : cy = 475
    caption 0,"<CLICK> pour arrêter"
' Pour centrer exactement le polygone et préciser son centre
   ' 2D_CIRCLE cx,cy,420
   ' 2D_CIRCLE cx,cy,3
   ' 2D_line cx,50,cx,500

END_SUB
REM ============================================================================
'                  ICI COMMENCE LE SPECTACLE !
SUB Spectacle()
    For sw= 1 to 9
        cls
        SELECT sw
          CASE 1
               POLY(3,240,726,480,56)
               MID(1,2) : MID(2,3) : MID(3,1) : CENTRE()
               ROTATE6(1,4,7,1,6,7) : ROTATE6(2,5,7,2,4,7)
               ROTATE6(3,5,7,3,6,7) :JOIN12(1,7,4,7,2,7,5,7,3,7,6,7)
               Print_locate 20,50: Print " IMAGE n°1  SUR  9"
'
          CASE 2
               POLY(3,240,726,480,56)
               MID(1,2) : MID(2,3) : MID(3,1) : CENTRE()
               ROTATE3(1,4,6) : ROTATE3(4,6,5) : ROTATE3(4,2,5)
               ROTATE3(6,5,3) : JOIN6(4,6,5,4,6,5)
               Print_locate 20,50: Print " IMAGE n°2  SUR  9"
'
          CASE 3
               POLY(4,225,600,480,56)
               MID(1,2) : MID(2,3) : MID(3,4) : MID(4,1)
               ROTATE3(2,5,6) : ROTATE3(4,7,8) : ROTATE3(1,8,5)
               ROTATE3(3,6,7) : ROTATE3(5,6,7) : ROTATE3(5,7,8)
               JOIN10(5,6,7,6,7,8,5,8,5,7)
               Print_locate 20,50: Print " IMAGE n°3  SUR  9"
  '
          CASE 4
               POLY(4,225,600,480,56)
               MID(1,2) : MID(2,3) : MID(3,4) : MID(4,1) : MID(1,3)
               ROTATE3(1,5,9) : ROTATE3(1,8,9) : ROTATE3(2,5,9)
               ROTATE3(2,6,9) : ROTATE3(3,6,9) : ROTATE3(3,7,9)
               ROTATE3(4,7,9) : ROTATE3(4,8,9) : JOIN12(1,9,2,9,3,9,4,9,5,7,6,8)
               Print_locate 20,50: print " IMAGE n°4  SUR  9"
'
          CASE 5
               POLY(4,225,600,480,56)
               MID(2,4) : JOIN4(1,3,2,4) : ROTATE6(5,1,2,5,3,2) :ROTATE6(5,3,4,5,1,4)
               Print_locate 20,50: print " IMAGE n°5  SUR  9"
'
          CASE 6
               POLY(5,216,530,480,56)
               MID(1,2) : MID(2,3) : MID(3,4) : MID(4,5) : MID(5,1) : CENTRE()
               ROTATE3(11,1,6) : ROTATE3(11,1,10) : ROTATE3(11,2,6) : ROTATE3(11,2,7)
               ROTATE3(11,3,7) : ROTATE3(11,3,8)  : ROTATE3(11,4,8) : ROTATE3(11,4,9)
               ROTATE3(11,5,9) : ROTATE3(11,5,10)
               JOIN10(6,11,7,11,8,11,9,11,10,11) : JOIN10(11,1,11,2,11,3,11,4,11,5)
               Print_locate 20,50: print " IMAGE n°6  SUR  9"
'
          CASE 7
               POLY(9,200,300,480,30)
               MID(5,6) : JOIN6(4,1,7,1,10,1)
               ROTATE4(1,10,5,4) : ROTATE4(1,10,6,7) : ROTATE4(1,4,3,2) : ROTATE4(1,7,8,9)
               Print_locate 20,50: print " IMAGE n°7  SUR  9"
'
          CASE 8
               POLY(12,195,230,480,30)
               JOIN4(1,7,4,10) : MID(1,7) : ROTATE5(1,13,4,3,2) : ROTATE5(7,13,4,5,6)
               ROTATE5(1,13,10,11,12) : ROTATE5(7,13,10,9,8)
               Print_locate 20,50: print " IMAGE n°8  SUR  9"
'
          CASE 9
               POLY(6,210,380,480,80) : ROTATE6(1,2,3,4,5,6) : ROTATE6(1,6,5,4,3,2)
               POLY(6,210,450,480,25) : POLY(6,210,430,480,42) : POLY(6,210,410,480,59)
               Print_locate 20,50: print " IMAGE n°9  SUR  9"
        END_SELECT

        if scancode <> 0  then fin()
        PAUSE 3000
    NEXT sw
    Print_locate 20,50: print "!!! LE SPECTACLE EST TERMINE !!!"
    caption 0,"Terminé"
END_SUB
REM ============================================================================
' Paramètres de POLY
' p1 = Nombre de sommets du polygone
' p2 = Inclinaison du 1er côté en degrés
' p3 = Longueur de chaque côté
' p4 = Coordonnée en x du premier sommet
' p5 = Coordonnée en y du premier sommet
SUB POLY(p1,p2,p3,p4,p5)
    dim_local b,PI,RAD
    PI=acos(-1): rad=PI/180 : p2=p2*RAD
    x=p4 : y=p5
    2D_POLY_FROM x,y  :' Coordonnées du premier sommet
    i=0: u=0 : u=u+1: mx(u)=x: my(u)=y
    i=i+1: c(i)=u      :' Numéro du premier sommet
    b=2*PI/p1
    for i=2 to p1
        x=x+p3*COS(p2): y=y+p3*SIN(p2)*-1
        2D_POLY_TO x,y
        u=u+1: mx(u)=x: my(u)=y : c(i)=u
        if i<p1+1 then p2=p2+b
    next i
    2D_POLY_TO mx(1),my(1)
END_SUB
rem ============================================================================
SUB MID(m1,m2)
    u=u+1
    mx(u)=(mx(m1)+mx(m2))/2 : my(u)=(my(m1)+my(m2))/2
'   2D_CIRCLE mx(u),my(u),3
    i=i+1: c(i)=u
END_SUB
rem ============================================================================
SUB CENTRE()
    2D_CIRCLE cx,cy,2
    u=u+1: mx(u)=cx: my(u)=cy : i=i+1: c(i)=u
END_SUB
rem ============================================================================
SUB ROTATE3(r1,r2,r3)
    c(1) = r1 : c(2) = r2 : c(3) = r3
    ROTATE_ALL(3)
END_SUB
rem ============================================================================
SUB ROTATE4(r1,r2,r3,r4)
    c(1) = r1 : c(2) = r2 : c(3) = r3 : c(4) = r4
    ROTATE_ALL(4)
END_SUB
rem ============================================================================
SUB ROTATE5(r1,r2,r3,r4,r5)
    c(1) = r1 : c(2) = r2 : c(3) = r3 : c(4) = r4 : c(5) = r5
    ROTATE_ALL(5)
END_SUB
rem ============================================================================
SUB ROTATE6(r1,r2,r3,r4,r5,r6)
    c(1) = r1 : c(2) = r2 : c(3) = r3 : c(4) = r4 : c(5) = r5 : c(6) = r6
    ROTATE_ALL(6)
END_SUB
rem ============================================================================
SUB ROTATE_ALL(rn)
    DIM_LOCAL s$,x1,x2
    for j=1 to rn
        e(j,1)=mx(c(j))
        e(j,2)=my(c(j))
    next j
    e(j,1)=e(1,1)
    e(j,2)=e(1,2)

    while 1 = 1 : ' Toujours vrai, donc une boucle infinie !
      for j=1 to rn
          x1=(e(j+1,1)-e(j,1))*(e(j+1,1)-e(j,1))
          x2=(e(j+1,2)-e(j,2))*(e(j+1,2)-e(j,2))
          n(j)=(f*l)/sqr(x1+x2)
          if n(j)>a then EXIT_SUB  : ' On brise ici la boucle infinie
      next j
'
      for j=1 to rn
          e(j,1)=e(j,1)+n(j)*(e(j+1,1)-e(j,1))
          e(j,2)=e(j,2)+n(j)*(e(j+1,2)-e(j,2))
          if j=1
             2D_POLY_FROM e(j,1),e(j,2)
          Else
             2D_POLY_TO e(j,1),e(j,2)
          END_IF
      next j
      e(j,1)=e(1,1)
      e(j,2)=e(1,2)
      2D_POLY_TO e(j,1),e(j,2)
    END_WHILE
END_SUB
rem ============================================================================
SUB JOIN4(j1,j2,j3,j4)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2) : 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
END_SUB
rem ============================================================================
SUB JOIN6(j1,j2,j3,j4,j5,j6)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2)
    2D_LINE mx(j3),my(j3),mx(j4),my(j4)
    2D_LINE mx(j5),my(j5),mx(j6),my(j6)
END_SUB
rem ============================================================================
SUB JOIN10(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2)
    2D_LINE mx(j3),my(j3),mx(j4),my(j4)
    2D_LINE mx(j5),my(j5),mx(j6),my(j6)
    2D_LINE mx(j7),my(j7),mx(j8),my(j8)
    2D_LINE mx(j9),my(j9),mx(j10),my(j10)
END_SUB
rem ============================================================================
SUB JOIN12(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11,j12)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2) : 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
    2D_LINE mx(j5),my(j5),mx(j6),my(j6) : 2D_LINE mx(j7),my(j7),mx(j8),my(j8)
    2D_LINE mx(j9),my(j9),mx(j10),my(j10) : 2D_LINE mx(j11),my(j11),mx(j12),my(j12)
END_SUB
rem ============================================================================
SUB Fin()
    caption 0, "Programme arrêté par l'utilisateur"
    end
END_SUB
rem ============================================================================

Pour la couleur, je passe la parole au coloriste du forum (il se reconnaitra) .

Personnellement je ne cherche pas à être meilleur que les autres.
Il me suffit d'être meilleur que moi-même! Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 18:15

Tu peux aussi simplifier est n'avoir qu'une seule procédure ROTATE(N,r1,r2,r3,r4,...,rN)..
idem pour la procédure JOIN
Rotation Algorithm n°3 01
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 18:50

Très joli résultat Parpaiun, bravo.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMar 23 Juin 2015 - 22:38

OK, je n'ai pas trop d'ide pour la colorisation car ce n'est pas très simple.
J'ai fais une version, si ça vous plait tant mieux, sinon, je vous laisse adapter si vous pouvez l'améliorer pour que ce soit encore plus joli.
Code:
REM ============================================================================
REM
REM                    ROTATION ALGORITHM
REM
REM ============================================================================
REM  Auteur: Parpaiun
REM  Date-version: 23/06/2015
REM ============================================================================
Init()
Spectacle()

end
rem ============================================================================
SUB Init()
    DIM a,cx,cy,f,i,j,l,rn,sw,u,x,y,z
    DIM c(20),e(30,2),mx(24),my(24),n(40), a$
    f = 3  :' Ecart entre droites
    l = 3  : a = 0.6
    FONT_SIZE 0,14 : height 0,980 : width 0,980 : cx = 480 : cy = 400
    caption 0,"<CLICK> pour arrêter"

END_SUB
REM ============================================================================
'                  ICI COMMENCE LE SPECTACLE !
SUB Spectacle()
    For sw= 1 to 9
        cls
        SELECT sw
          CASE 1
              POLY(3,240,726,480,56)
              MID(1,2) : MID(2,3) : MID(3,1) : CENTRE()
              ROTATE6(1,4,7,1,6,7) : ROTATE6(2,5,7,2,4,7)
              ROTATE6(3,5,7,3,6,7) :JOIN12(1,7,4,7,2,7,5,7,3,7,6,7)
              Print_locate 20,50: Print " IMAGE n°1  SUR  9"
'
          CASE 2
              POLY(3,240,726,480,56)
              MID(1,2) : MID(2,3) : MID(3,1) : CENTRE()
              ROTATE3(1,4,6) : ROTATE3(4,6,5) : ROTATE3(4,2,5)
              ROTATE3(6,5,3) : JOIN6(4,6,5,4,6,5)
              Print_locate 20,50: Print " IMAGE n°2  SUR  9"
'
          CASE 3
              POLY(4,225,600,480,56)
              MID(1,2) : MID(2,3) : MID(3,4) : MID(4,1)
              ROTATE3(2,5,6) : ROTATE3(4,7,8) : ROTATE3(1,8,5)
              ROTATE3(3,6,7) : ROTATE3(5,6,7) : ROTATE3(5,7,8)
              JOIN10(5,6,7,6,7,8,5,8,5,7)
              Print_locate 20,50: Print " IMAGE n°3  SUR  9"
  '
          CASE 4
              POLY(4,225,600,480,56)
              MID(1,2) : MID(2,3) : MID(3,4) : MID(4,1) : MID(1,3)
              ROTATE3(1,5,9) : ROTATE3(1,8,9) : ROTATE3(2,5,9)
              ROTATE3(2,6,9) : ROTATE3(3,6,9) : ROTATE3(3,7,9)
              ROTATE3(4,7,9) : ROTATE3(4,8,9) : JOIN12(1,9,2,9,3,9,4,9,5,7,6,8)
              Print_locate 20,50: print " IMAGE n°4  SUR  9"
'
          CASE 5
              POLY(4,225,600,480,56)
              MID(2,4) : JOIN4(1,3,2,4) : ROTATE6(5,1,2,5,3,2) :ROTATE6(5,3,4,5,1,4)
              Print_locate 20,50: print " IMAGE n°5  SUR  9"
'
          CASE 6
              POLY(5,216,530,480,56)
              MID(1,2) : MID(2,3) : MID(3,4) : MID(4,5) : MID(5,1) : CENTRE()
              ROTATE3(11,1,6) : ROTATE3(11,1,10) : ROTATE3(11,2,6) : ROTATE3(11,2,7)
              ROTATE3(11,3,7) : ROTATE3(11,3,8)  : ROTATE3(11,4,8) : ROTATE3(11,4,9)
              ROTATE3(11,5,9) : ROTATE3(11,5,10)
              JOIN10(6,11,7,11,8,11,9,11,10,11) : JOIN10(11,1,11,2,11,3,11,4,11,5)
              Print_locate 20,50: print " IMAGE n°6  SUR  9"
'
          CASE 7
              POLY(9,200,300,480,30)
              MID(5,6) : JOIN6(4,1,7,1,10,1)
              ROTATE4(1,10,5,4) : ROTATE4(1,10,6,7) : ROTATE4(1,4,3,2) : ROTATE4(1,7,8,9)
              Print_locate 20,50: print " IMAGE n°7  SUR  9"
'
          CASE 8
              POLY(12,195,230,480,30)
              JOIN4(1,7,4,10) : MID(1,7) : ROTATE5(1,13,4,3,2) : ROTATE5(7,13,4,5,6)
              ROTATE5(1,13,10,11,12) : ROTATE5(7,13,10,9,8)
              Print_locate 20,50: print " IMAGE n°8  SUR  9"
'
          CASE 9
              2D_pen_width 3
              POLY(6,210,380,480,80) : ROTATE6(1,2,3,4,5,6) : ROTATE6(1,6,5,4,3,2)
              POLY(6,210,450,480,25) : POLY(6,210,430,480,42) : POLY(6,210,410,480,59)
              Print_locate 20,50: print " IMAGE n°9  SUR  9"
        END_SELECT

        a$ = inkey$
        if a$ <> ""  then fin()
        PAUSE 3000
    NEXT sw
    Print_locate 20,50: print "!!! LE SPECTACLE EST TERMINE !!!"
    caption 0,"Terminé"
END_SUB
REM ============================================================================
' Paramètres de POLY
' p1 = Nombre de sommets du polygone
' p2 = Inclinaison du 1er côté en degrés
' p3 = Longueur de chaque côté
' p4 = Coordonnée en x du premier sommet
' p5 = Coordonnée en y du premier sommet
SUB POLY(p1,p2,p3,p4,p5)
    dim_local b,PI,RAD
    PI=acos(-1): rad=PI/180 : p2=p2*RAD
    x=p4 : y=p5
    2D_PEN_COLOR abs(x-cx)/3,abs(y-cy)/3,(abs(x-cx)+abs(y-cy))/5 :2D_POLY_FROM x,y  :' Coordonnées du premier sommet
    i=0: u=0 : u=u+1: mx(u)=x: my(u)=y
    i=i+1: c(i)=u      :' Numéro du premier sommet
    b=2*PI/p1
    for i=2 to p1
        x=x+p3*COS(p2): y=y+p3*SIN(p2)*-1
        2D_PEN_COLOR abs(x-cx)/3,abs(y-cy)/3,(abs(x-cx)+abs(y-cy))/5 : 2D_POLY_TO x,y
        u=u+1: mx(u)=x: my(u)=y : c(i)=u
        if i<p1+1 then p2=p2+b
    next i
    2D_POLY_TO mx(1),my(1)
END_SUB
rem ============================================================================
SUB MID(m1,m2)
    u=u+1
    mx(u)=(mx(m1)+mx(m2))/2 : my(u)=(my(m1)+my(m2))/2
    i=i+1: c(i)=u
END_SUB
rem ============================================================================
SUB CENTRE()
    2D_CIRCLE cx,cy,2
    u=u+1: mx(u)=cx: my(u)=cy : i=i+1: c(i)=u
END_SUB
rem ============================================================================
SUB ROTATE3(r1,r2,r3)
    c(1) = r1 : c(2) = r2 : c(3) = r3
    ROTATE_ALL(3)
END_SUB
rem ============================================================================
SUB ROTATE4(r1,r2,r3,r4)
    c(1) = r1 : c(2) = r2 : c(3) = r3 : c(4) = r4
    ROTATE_ALL(4)
END_SUB
rem ============================================================================
SUB ROTATE5(r1,r2,r3,r4,r5)
    c(1) = r1 : c(2) = r2 : c(3) = r3 : c(4) = r4 : c(5) = r5
    ROTATE_ALL(5)
END_SUB
rem ============================================================================
SUB ROTATE6(r1,r2,r3,r4,r5,r6)
    c(1) = r1 : c(2) = r2 : c(3) = r3 : c(4) = r4 : c(5) = r5 : c(6) = r6
    ROTATE_ALL(6)
END_SUB
rem ============================================================================
SUB ROTATE_ALL(rn)
    DIM_LOCAL s$,x1,x2
    for j=1 to rn
        e(j,1)=mx(c(j))
        e(j,2)=my(c(j))
    next j
    e(j,1)=e(1,1)
    e(j,2)=e(1,2)

    while 1 = 1 : ' Toujours vrai, donc une boucle infinie !
      for j=1 to rn
          x1=(e(j+1,1)-e(j,1))*(e(j+1,1)-e(j,1))
          x2=(e(j+1,2)-e(j,2))*(e(j+1,2)-e(j,2))
          n(j)=(f*l)/sqr(x1+x2)
          if n(j)>a then EXIT_SUB  : ' On brise ici la boucle infinie
      next j
'
      for j=1 to rn
          e(j,1)=e(j,1)+n(j)*(e(j+1,1)-e(j,1))
          e(j,2)=e(j,2)+n(j)*(e(j+1,2)-e(j,2))
          2D_PEN_COLOR abs(e(j,1) - cx)/3,abs(e(j,2)-cy)/3,(abs(e(j,1) - cx)+abs(e(j,2) - cy))/5
          if j=1
            2D_POLY_FROM e(j,1),e(j,2)
          Else
            2D_POLY_TO e(j,1),e(j,2)
          END_IF
      next j
      e(j,1)=e(1,1)
      e(j,2)=e(1,2)
      2D_PEN_COLOR abs(e(j,1) - cx)/3,abs(e(j,2)-cy)/3,(abs(e(j,1) - cx)+abs(e(j,2) - cy))/5
      2D_POLY_TO e(j,1),e(j,2)
    END_WHILE
END_SUB
rem ============================================================================
SUB JOIN4(j1,j2,j3,j4)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2) : 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
END_SUB
rem ============================================================================
SUB JOIN6(j1,j2,j3,j4,j5,j6)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2)
    2D_LINE mx(j3),my(j3),mx(j4),my(j4)
    2D_LINE mx(j5),my(j5),mx(j6),my(j6)
END_SUB
rem ============================================================================
SUB JOIN10(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2)
    2D_LINE mx(j3),my(j3),mx(j4),my(j4)
    2D_LINE mx(j5),my(j5),mx(j6),my(j6)
    2D_LINE mx(j7),my(j7),mx(j8),my(j8)
    2D_LINE mx(j9),my(j9),mx(j10),my(j10)
END_SUB
rem ============================================================================
SUB JOIN12(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11,j12)
    2D_LINE mx(j1),my(j1),mx(j2),my(j2) : 2D_LINE mx(j3),my(j3),mx(j4),my(j4)
    2D_LINE mx(j5),my(j5),mx(j6),my(j6) : 2D_LINE mx(j7),my(j7),mx(j8),my(j8)
    2D_LINE mx(j9),my(j9),mx(j10),my(j10) : 2D_LINE mx(j11),my(j11),mx(j12),my(j12)
END_SUB
rem ============================================================================
SUB Fin()
    caption 0, "Programme arrêté par l'utilisateur"
    end
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Parpaiun

Parpaiun


Nombre de messages : 192
Age : 84
Localisation : HERAULT
Date d'inscription : 15/04/2015

Rotation Algorithm n°3 Empty
MessageSujet: Revue du sujet   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 1:09

Alors Nardo26, Jean-Claude, Jicehel et Papydall, vous avez pu voir comment je m'en suis tiré !

Je vous révèle que le programme original, écrit en HP 3000 Basic par l'américain Samuel Bates, a été trouvé par mes soins dans le magazine BYTE de janvier 1981, chapître "Programming quickies" sous le titre de "Rotation Algorithm". Toute l'écriture de ce programme est très différente de ma traduction en GFA Basic comme en Panoramic. Il m'a fallu un effort pour arriver à comprendre les mécanismes de ce programme original, donnant exactement les mêmes images.

Quant à la traduction de GFA Basic en Panoramic, je n'ai pas eu le temps de chercher à réduire le nombre de lignes comme l'a fait Papydall, merci à lui ! Au moins, il sait peut-être que je l'ai battu grâce à mon programme en GFA Basic dans lequel j'ai utilisé les instructions ParamArray et Ubound comme dans les exemples suivants: Procedure ROTATE(ParamArray c()), For j = 1 to UBound(c()) , etc...
de même que pour JOIN(ParamArray c()) et For j = 1 to UBound(c()).

Ce serait super si Jack parvenait à exploiter ces précieuses fonctions dans Panoramic !

Jicehel, ta tentative de coloration des lignes sur les images est vraiment trop pauvre. Il fallait remplir les vides blancs avec des nuances de couleur façon VASARELY sur une image de ton choix, si tu sais bien ce qu'il avait fait. Ce serait absolument magnifique à voir, je t'assure. Mais cette méthode prendrait un temps fou à choisir les nuances. Utilise pour cela un logiciel genre "La boîte à couleurs" ou autre. D'accord ?

Voilà, j'en ai assez dit. Merci à vous braves panoramiciens et bonne nuit ! Sleep
Sleep Sleep Sleep









Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 7:01

Merci pour ta proposition Parpaiun mais je ne relève pas le défit car je n'en ai absolument pas le temps. Si tu veux essayer, fais toi plaisir... J'ai hésité à proposer ma tentative de colorisation car elle ne me plait pas plus que ça non plus, mais je n'ai pas d'idée. Tu pourras proposer toi même ton amélioration pour que ce soit encore plus joli Wink Moi là, je manque d'idées.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 8:43

Nickel Parpaiun ! Rotation Algorithm n°3 18
Je te propose cette version qui te simplifie les procédures JOIN et ROTATE
Mais si tu veux d'abord chercher par toi même, la soluce à toi de voir Wink

Bref ma proposition :

simplification:

Regarde la commande KEY_UP_CODE qui à mon avis, est plus "souple" que l'utilisation de SCANCODE (pour quitter le prog en cours d’exécution) Rotation Algorithm n°3 01
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 12:53

Merci Nardo en plus chez moi, le scancode ne fonctionne pas (je suis toujours à 255) donc le programme s'arrète dès la première image si je ne change rien. C'est un problème qu'avait rencontré Cosmos70 et d'autres. Ca doit être lié à quelque chose dans la config ou les drivers, mais pas la moindre idée de quoi. Enfin bref, j'ai des moyens de contournement comme le inkey$ ou le key_down_code (ou le key_up_code)
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 17:49

Salut Jicehel

Comme  le scancode ne fonctionne pas sur ton ordi ou plutôt ton ordi ne reconnait pas le scancode, jette-le à la corbeille et procure-toi un nouveau !
Tu sais, la corbeille  qui se trouve sur le bureau, prends ton ordi à deux mains et essaie de le mettre dedans.
Si tu n’y arrives pas, tu peux toujours me l’envoyer en cadeau   (par les moyens modernes : par SMS, par FAX, par courrier indésirable, etc.). Laughing
Tu sors gagnant : tu as un nouveau ordi et ton grenier est propre !
Je cours regarder ma boîte à lettre pour voir si ton ordi y est, qui sait, à la vitesse où nous vivons, tout est possible !

Sérieusement, j’ai eu ce même problème et je l’ai résolu.
Comment ?
Jette un œil ici ou .
Ça t’épargnera peut-être la peine de m’expédier ton cher PC !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 18:19

Oui tu en avais parlé mais il n'y a pas de solution...
Mon PC win7 64bits me renvoi 255 pour la touche ESC... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 18:47

C'est quand même bizarre ce truc. Comme ça pose souvent problème moi dans mes programmes j'ai abandonné l'usage du scancode en tout cas (mais je sais que ça vient probablement de quelque chose quelque part dans mes drivers ou résident puisque le reboot ne résoud pas le problème). Je n'ai pas envie de tout cassé dans mes programmes car mon PC fonctionne très bien et que ce problème est très facilement contournable avec d'autres instructions avec lesquelles je n'ai aucun problème.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyMer 24 Juin 2015 - 19:00

idem...
pourtant scancode marchait bien sur mon PC avant... Rotation Algorithm n°3 58
et je reviens de me faire avoir avec le programme de serge (polygone) Laughing
Revenir en haut Aller en bas
http://nardo26.lescigales.org
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyJeu 25 Juin 2015 - 2:19

Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyJeu 25 Juin 2015 - 7:57

Bonjour,
Une simple question: est-ce quelqu'un a regardé si Lbound et Ubound pouvaient être remplacés ici par ce qu'on a dit sur dlist? Était-ce une erreur, ou une mauvaise interprétation?
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyJeu 25 Juin 2015 - 8:56

Bonjour cosmos,

UBOUND, renvoie la plus grande valeur d'une dimension d'un tableau.
En VBA:

Dim tableau(5,  7)
 
UBound(tableau) renvoie : 7
UBound(tableau, 1) renvoi : 5
UBound(tableau, 2) renvoi : 7


Dans le cas d'une DLIST (une seule dimension), la fonction Panoramic COUNT() est bien équivalent à UBOUND
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 EmptyJeu 25 Juin 2015 - 13:35

D'accord Nardo, je l'avais compris. Mais vu que Parpaiun (il me semble que c'est l'orthographe, vu que le nom n'est pas sur cette page) avait dit que cela ne convenait pas, j'aimerai que les spécialistes du genre, valident ou non. Si un dlist pouvait être utilisé, montrer le fonctionnement à l'auteur du sujet (n'étant pas sur de l'orthographe, et vu les réactions de celui-ci, je préfère en éviter l'écriture!)
Revenir en haut Aller en bas
Contenu sponsorisé





Rotation Algorithm n°3 Empty
MessageSujet: Re: Rotation Algorithm n°3   Rotation Algorithm n°3 Empty

Revenir en haut Aller en bas
 
Rotation Algorithm n°3
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Rotation Algorithm
» Rotation Algorithm n°2
» Rotation d'une figure de base
» Rotation de bitmap
» Rotation de bitmap (bis)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: