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
» SineCube
Rotation Algorithm n°3 Emptypar papydall Aujourd'hui à 0:49

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Rotation Algorithm n°3 Emptypar Yannick Hier à 18:32

» Philharmusique
Rotation Algorithm n°3 Emptypar jjn4 Hier à 13:58

» PANORAMIC V 1
Rotation Algorithm n°3 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Rotation Algorithm n°3 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Rotation Algorithm n°3 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Rotation Algorithm n°3 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Rotation Algorithm n°3 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Rotation Algorithm n°3 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Rotation Algorithm n°3 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Rotation Algorithm n°3 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Rotation Algorithm n°3 Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Rotation Algorithm n°3 Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Rotation Algorithm n°3 Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Rotation Algorithm n°3 Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
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 : 7009
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 : 5950
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 : 7009
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 : 7009
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: