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
» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 0:29

» track_bar circulaire
par Klaus Hier à 21:41

» Gestionnaire de Projets Panoramic
par Jean Claude Hier à 20:41

» Mah-Jong européen new-look
par Jean Claude Hier à 20:34

» Gestion de l'Unicode
par jean_debord Hier à 11:21

» Button_picture
par pascal10000 Jeu 14 Déc 2017 - 11:41

» Pourquoi le compilateur stagne
par Minibug Jeu 14 Déc 2017 - 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Jeu 14 Déc 2017 - 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Jeu 14 Déc 2017 - 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Jeu 14 Déc 2017 - 10:00

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
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 : 5865
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 : 5613
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 : 5613
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 ..
» Nouvelle numérotation des chaines HD sur Bbox TV
» Rotation d'image 3D
» [Résolu] Rotation Video

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: