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 Emptypar papydall Aujourd'hui à 0:49

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

» Philharmusique
Rotation Algorithm Emptypar jjn4 Hier à 13:58

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

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

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

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

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

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

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

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

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

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

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

» Form(résolu)
Rotation Algorithm 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
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

 

 Rotation Algorithm

Aller en bas 
3 participants
AuteurMessage
Parpaiun

Parpaiun


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

Rotation Algorithm Empty
MessageSujet: Rotation Algorithm   Rotation Algorithm EmptyDim 21 Juin 2015 - 22: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
Jicehel

Jicehel


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

Rotation Algorithm Empty
MessageSujet: Re: Rotation Algorithm   Rotation Algorithm EmptyDim 21 Juin 2015 - 23:08

Joli
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 Empty
MessageSujet: Re: Rotation Algorithm   Rotation Algorithm EmptyLun 22 Juin 2015 - 1: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.

Rotation Algorithm Cool_012
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Parpaiun

Parpaiun


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

Rotation Algorithm Empty
MessageSujet: Revue du sujet   Rotation Algorithm EmptyLun 22 Juin 2015 - 7: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
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 Empty
MessageSujet: Re: Rotation Algorithm   Rotation Algorithm EmptyLun 22 Juin 2015 - 11: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
http://papydall-panoramic.forumarabia.com/
Parpaiun

Parpaiun


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

Rotation Algorithm Empty
MessageSujet: Revue du sujet   Rotation Algorithm EmptyLun 22 Juin 2015 - 13: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
Contenu sponsorisé





Rotation Algorithm Empty
MessageSujet: Re: Rotation Algorithm   Rotation Algorithm Empty

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

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: