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
» un nouveau editeur panobasic
par pascal10000 Hier à 21:52

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Jack Hier à 20:23

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Hier à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Hier à 19:58

» Compilateur FBPano
par jean_debord Hier à 8:49

» 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

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

» Problème avec les chaines de caractères
par bignono Dim 6 Aoû 2017 - 9:33

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

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   Dim 21 Juin 2015 - 23:52

Ohé les aminches, bonsoir ! Voici la première ébauche du programme "ROTATION ALGORITHM" ! C'est mon premier long programme pour Panoramic ...

S'il vous plait, n'y touchez pas si l'exécution et l'image sont O.K.
Ce n'est pas terminé. J'ajouterai progressivement d'autres images au fur et à mesure dans le même programme jusqu'à concurrence de 9, vous avez bien lu, la preuve par neuf !

Code:
REM ===================================================================
REM
REM                    ROTATION ALGORITHM
REM
REM ===================================================================
REM  Auteur: Parpaiun
REM  Date-version: 21/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 ===================================================================
  sw=1  :' Aiguillage vers un traitement
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: Print " IMAGE n°1"
END_SELECT

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
u=u+1: mx(u)=x: my(u)=y
i=i+1: c(i)=u
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
 p2=p2+b
next i
2D_POLY_TO mx(1),my(1)

END_SUB
'
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 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

Que papydall m'épargne sa GOTOPHOBIE car il y en a un seul GOTO dans mon programme, merci !

Après avoir admiré l'image et le programme, dites moi un peu ce que vous en pensez. Et ne tirez pas trop sur le programmeur que je suis, re-merci !

A + et bonsoir la compagnie ! lol! lol! lol!
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   Lun 22 Juin 2015 - 0:08

Joli
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   Lun 22 Juin 2015 - 2:02

Salut Parpaiun
Félicitation pour ce programme.
Bravo. On voit que tu t’es bien sorti pour adapter ton code GFA en Panoramic.
Le résultat est fort sympa, je te l’accorde, mais ….
Parpaiun a écrit:
S'il vous plait, n'y touchez pas si l'exécution et l'image sont O.K.

Pourquoi dis-tu ça ?
Tu ne veux pas qu’on t’aide ?  Tu ne veux pas qu’on te conseille ? Tu ne veux pas qu’on te donne une autre façon de coder une telle ou telle chose ?

Parpaiun a écrit:
Que papydall m'épargne sa GOTOPHOBIE car il y en a un seul GOTO dans mon programme, merci !

Je n’ai pas de phobie envers GOTO : mais je ne l’utilise jamais (ou presque) quand il est très facile de s’en passer !
J’ai toujours dis (et c’est ma conviction) que le GOTO c’est la négation de la programmation structurée, de la programmation procédurale, de la programmation événementielle.
Or la programmation en Panoramic est à la fois structurée, procédurale et événementielle.

Bon, on ne va faire de la polémique là-dessus pour ne pas envenimer l’atmosphère.

Je ne vais pas modifier ton programme, rassure-toi.
Seulement les SUB ROTATE3(…) , SUB ROTATE4(…), SUB ROTATE5(…) et SUB ROTATE6(…), je les coderais chacune en une seule ligne,  sans boucle FOR ni structure SELECT.
Je ne le fais pas puisque tu nous as, si gentiment,  interdit d’y toucher.

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

avatar

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

MessageSujet: Revue du sujet   Lun 22 Juin 2015 - 8:05

Merci papydall pour être le premier parmi 172 membres à avoir admiré mon travail !

Je préfère qu'on ne touche pas à mon PROGRAMME INCOMPLET pour ne pas déranger mon organisation de programmation.

Pardon papydall de t'avoir dérangé dans ta philosophie panoramicienne acquise à propos des GOTO.

Je ne recherche pas du tout de polémique, et je tiens à garder franche et bonne camaraderie envers tous, toi compris.

Comme tu as pensé coder mes ROTATE en une seule ligne, chiche ! Dès que j'aurai enfin terminé mon programme, tu me diras ce que tu as trouvé comme solution de remplacement... Mais épargne toi de la peine ou de la fatigue à force de chercher la solution !

Pour ne pas encombrer cette revue, je lance à part une première extension de mon programme que tu pourras voir dans "Rotation Algorithm n°2"

Bonne journée ! lol!
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   Lun 22 Juin 2015 - 12:57

OK, comme tu veux.

Parpaiun a écrit:
Comme tu as pensé coder mes ROTATE en une seule ligne, chiche ! Dès que j'aurai enfin terminé mon programme, tu me diras ce que tu as trouvé comme solution de remplacement... Mais épargne toi de la peine ou de la fatigue à force de chercher la solution !

Pourtant la solution saute aux yeux, mais ça va , comme tu voudras.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Parpaiun

avatar

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

MessageSujet: Revue du sujet   Lun 22 Juin 2015 - 14:59

Papydall et d'autres auraient il oublié ce message que je leur ai écrit ?

Pour ne pas encombrer cette revue, je lance à part une première extension de mon programme que tu pourras voir dans "Rotation Algorithm n°2":
 

Le programme en question, puisqu'il a été effacé des "derniers sujets" par suite d'encombrement, peut se retrouver dans les inutilitaires.

Merci de bien vouloir me fournir votre avis sur le résultat, et surtout pas d'aide que je n'ai pourtant pas demandé !

Pour l'aide, attendez que j'aie sorti les 9 images pour avoir une vision d'ensemble des appels de sous-programmes avant de m'apporter des solutions visant à réduire le nombre de lignes ! Merci ! Neutral Neutral Neutral

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Rotation Algorithm   

Revenir en haut Aller en bas
 
Rotation Algorithm
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: