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
» Form(résolu)
Rotation Algorithm Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Rotation Algorithm Emptypar Marc Hier à 11:42

» Bataille navale SM
Rotation Algorithm Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Une calculatrice en une ligne de programme
Rotation Algorithm Emptypar jean_debord Ven 26 Avr 2024 - 8:01

» Gestion d'un système client-serveur.
Rotation Algorithm Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Rotation Algorithm Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Rotation Algorithm Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Rotation Algorithm Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Rotation Algorithm Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Rotation Algorithm Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Rotation Algorithm Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Rotation Algorithm Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Rotation Algorithm Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Rotation Algorithm Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Rotation Algorithm Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 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 : 6996
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 : 6996
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°3
» Rotation Algorithm n°2
» 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: