FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Yannick Aujourd'hui à 1:58

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Hier à 19:26

» Compilateur FBPano
par Mike Hier à 13:52

» un nouveau editeur panobasic
par Jean Claude Hier à 10:18

» Le compilateur.
par Pedro Alvarez Hier à 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Rotation Algorithm n°3

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

avatar

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

MessageSujet: Rotation Algorithm n°3   Mar 23 Juin 2015 - 16: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
Voir le profil de l'utilisateur
sergeauze

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mar 23 Juin 2015 - 17:05

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

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mar 23 Juin 2015 - 17:47

Joli !
Il y a une petite erreur ligne 309...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
papydall

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mar 23 Juin 2015 - 18: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mar 23 Juin 2015 - 19: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jean Claude

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mar 23 Juin 2015 - 19:50

Très joli résultat Parpaiun, bravo.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Rotation Algorithm n°3   Mar 23 Juin 2015 - 23: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
Voir le profil de l'utilisateur
Parpaiun

avatar

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

MessageSujet: Revue du sujet   Mer 24 Juin 2015 - 2: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
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 8: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
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 9:43

Nickel Parpaiun !
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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 13: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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 18: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 19: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 19: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
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Mer 24 Juin 2015 - 20:00

idem...
pourtant scancode marchait bien sur mon PC avant...
et je reviens de me faire avoir avec le programme de serge (polygone) Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
papydall

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Jeu 25 Juin 2015 - 3:19

Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Rotation Algorithm n°3   Jeu 25 Juin 2015 - 8: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

avatar

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

MessageSujet: Re: Rotation Algorithm n°3   Jeu 25 Juin 2015 - 9: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Invité
Invité



MessageSujet: Re: Rotation Algorithm n°3   Jeu 25 Juin 2015 - 14: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é




MessageSujet: Re: Rotation Algorithm n°3   

Revenir en haut Aller en bas
 
Rotation Algorithm n°3
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Rotation Algorithm
» [résolu]Problèms Divers ....rotation ...carroussel, ect ..
» [codage] problème de rotation sur image
» Nouvelle numérotation des chaines HD sur Bbox TV
» Rotation d'image 3D

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