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
» Simuler l’appui de n’importe quelle touche.
par papydall Hier à 23:54

» Le Forum est en vacances.
par JL35 Hier à 21:20

» Une autre façon de terminer une application.
par JL35 Mar 22 Aoû 2017 - 14:27

» Compilateur FBPano
par Mike Lun 21 Aoû 2017 - 23:17

» Pb 20 (en analyse): plantage à l'appel d'un SUB
par Jack Lun 21 Aoû 2017 - 21:58

» Pb 19 (en analyse): libellé d'erreur dans des IF imbriqués
par Jack Lun 21 Aoû 2017 - 21:55

» Copier / coller du texte à partir de la fenêtre de commandes
par jean_debord Lun 21 Aoû 2017 - 9:46

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par papydall Lun 21 Aoû 2017 - 5:01

» Mettre en windows en veille
par papydall Lun 21 Aoû 2017 - 4:15

» Stretch_on ne stretch plus...
par papydall Dim 20 Aoû 2017 - 15:22

» Pb 18 (en analyse): RESTORE_LABEL avec DATA à la fin
par Jack Dim 20 Aoû 2017 - 13:21

» Problème de traitement des opérateurs avec le compilateur.
par Pedro Alvarez Sam 19 Aoû 2017 - 20:01

» Pb 17 (résolu): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

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 | 
 

 SUBs de tracé de figures géométriques

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

avatar

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

MessageSujet: SUBs de tracé de figures géométriques   Dim 25 Aoû 2013 - 18:24

Salut tout le monde.

Je vous propose quelques procédures de tracé de figures géométriques.
Tout est commenté dans le code

Code:
' ******************************************************************************
' Procédures de tracé de quelques figures géométriques Par Papydall
' Figures_Geometriques.bas
' ******************************************************************************
 Ellipse(250,220,200,100)
' Ellipse(250,220,100,200)

' Spirale(300,200,10)

' Polygone(250,220,200,3)     : ' triangle ou trigone
' Polygone(250,220,200,4)     : ' carré  ou tétragone
' Polygone(250,220,200,5)     : ' pentagone
' Polygone(250,220,200,6)     : ' hexagone
' Polygone(250,220,200,7)     : ' heptagone
' Polygone(250,220,200,8)     : ' octogone
' Polygone(250,220,200,9)     : ' nonagone ou ennéagone
' Polygone(250,220,200,10)    : ' décagone
' Polygone(250,220,200,11)    : ' hendécagone
' Polygone(250,220,200,12)    : ' dodécagone
' Polygone(250,220,200,20)    : ' icosagone
' Polygone(250,220,200,100)   : ' hécatontagone (on s'approche du cercle)
' Polygone(250,220,200,1000)  : ' chiliagone (pratiquement un cercle)
' Polygone(250,220,200,10000) : ' myriagone  (pratiquement un cercle)

' Pentagramme(250,220,200)

' Coeur(200,250,10)

' concoide(300,200,100)

' Papillon(300,300,50)

' Napperon(300,220,200)

' Secteur_Circulaire(300,220,0,90,200)
' Secteur_Circulaire(300,220,60,120,180)
' Secteur_Circulaire(300,220,-30,-60,200)
' Secteur_Circulaire(300,220,-60,-30,200)

end
' ******************************************************************************
' Tracé d'une ellipse
' Appel : Ellipse(xc,yc,rx,ry)
' Paramètres:
' xc,yc : coordonnées du centre de l'ellipse
' rx et ry : respectivement rayon horizontal et rayon vertical de l'ellipse
' si rx = ry on obtient un cercle
' Exemple d'appel :
' Ellipse(250,220,100,200)
' Ellipse(250,220,200,100)

SUB Ellipse(xc,yc,rx,ry)
    dim_local x,y,t,pi,p
    pi = acos(-1) : p = pi/180
    2d_poly_from xc + rx,yc
    for t = 0 to 2*pi step p
        x = xc + rx * cos(t) : y = yc + ry * sin(t) : 2d_poly_to x,y
    next t
END_SUB
' ******************************************************************************
' Tracé d'une spirale
' Appel Spirale(xc,yc,n)
' Paramètres:
' xc,yc : coordonnées du centre de la spirale
' n     : nombre de tours
' Exemple d'appel : Spirale(300,200,10)

SUB Spirale(xc,yc,n)
    dim_local x,y,theta,pi,p
    pi = acos(-1) : p = pi/180 : 2d_poly_from xc,yc
    for theta = 0 to 2*n*pi step p
        x = xc + 3 * theta * cos(theta) : y = yc + 3* theta*sin(theta)
        2d_poly_to x,y
    next theta
END_SUB
' ******************************************************************************
' Tracé d'un polygone convexe régulier
' Paramètres :
' xc,yc : coordonnées du centre du polygone
' rayon : rayon du cercle circonscrit au polygone
' Nbcote : nombre des côtés du polygone
' Exemple d'appel :
' Polygone(250,220,200,3)  : ' triangle
' Polygone(250,220,200,4)  : ' carré
' Polygone(250,220,200,5)  : ' pentagone
' Polygone(250,220,200,10) : ' décagone
' Remarque :
' Pour un grand nombre des côtés on obtient un cercle
' Polygone(250,220,200,360) : ' un cercle

SUB Polygone(xc,yc,rayon,NbCote)
    dim_local x,y,t,pi,p
    pi = acos(-1) : p = 2*pi/NbCote
    2d_poly_from xc + rayon,yc
    for t = 0 to 2*pi+.1  step p
        x = xc + rayon * cos(t) : y = yc + rayon * sin(t) : 2d_poly_to x,y
    next t
END_SUB
' ******************************************************************************
' Tracé d'un pentagramme (étoile à 5 sommets)
' Paramètres :
' xc,yc : coordonnées du centre du pentagramme
' rayon : rayon du cercle circonscrit au pentagramme
' Exemple d'appel :
' pentagramme(250,220,200)

SUB Pentagramme(xc,yc,rayon)
    dim_local x,y,t,pi,p
    pi = acos(-1) : p = 4*pi/5
    2d_poly_from xc + rayon,yc
    for t = 0 to 4*pi  step p
        x = xc + rayon * cos(t) : y = yc + rayon * sin(t) : 2d_poly_to x,y
    next t
END_SUB
' ******************************************************************************
' Tracé d'un coeur
' Paramètres :
' rx et ry détermine l'allure du coeur dans les sens horizontal et vertical
' epais détermine l'épaisseur du tracé en pixels
' la valeur de epais doit être compris entre 1 et 20, sinon elle sera de 5 pixels
' Exemple d'appel :
' Coeur(200,250,10)

SUB Coeur(rx,ry,epais)
    dim_local x,y,xc,yc,t,pi,p
    if (epais < 1) or (epais > 20) then epais = 5
    pi = acos(-1) : p = pi/180 : xc = width(0)*.5 : yc = (ry+height(0))*.5
    2d_poly_from xc,yc-ry : 2d_pen_color 255,0,0 : 2d_pen_width epais
    for t = 0 to 2*pi step p
        x = 4*cos(t)*cos(t)*sin(t)*sin(t)*sin(t)
        y = (3-2*cos(t)*cos(t))*cos(t)*cos(t) : 2d_poly_to xc+rx*x, yc-ry*y
    next t
END_SUB
' ******************************************************************************
' Conchoïde de rosace
' Courbe étudiée par Moritz en 1917
' Autres noms :
' Pétale géométrique, courbe botanique, rosace de Troie (dans le cas e > 1)
' courbe cyclo-harmonique, sinusoïde circulaire
' ------------------------------------------------------------------------------
' Equation polaire : rho = r *(1 + e * cos(n * theta)) avec n réel > 0
' Paramètres :
' xc,yc : coordonnées du centre de la concoïde
' r : coefficient multiplicateur
' Exemple d'appel :
' Concoide(300,200,100)

SUB Concoide(xc,yc,r)
    dim_local pi,p,x,y,theta,rho,n,e
    pi = acos(-1) : p = pi/180
    n = 9/7 : e = .8 : ' Modifier les valeurs de ces 2 constantes pour obtenir différentes formes
    theta = 0 : rho = (1+e*cos(n*theta)) : x = rho*cos(theta) : y = rho*sin(theta)
    2d_poly_from xc+x*r, yc+y
    for theta = p to 20*pi step p
        rho = (1+e*cos(n*theta)) : x = rho*cos(theta) : y = rho*sin(theta)
        2d_poly_to xc+r*x, yc+r*y
    next theta
END_SUB
' ******************************************************************************
' Tracé d'un papillon
' Paramètres :
' xc,yc : coordonnées du centre du papillon
' coef  : coeffitient multiplicateur
' Exemple d'appel :
' Papillon(300,300,50)

SUB Papillon(xc,yc,coef)
    dim_local r,theta,x,y,pi,p
    pi = acos(-1) : p = pi/180
    2d_poly_from xc,yc
    for theta = 0 to 20*pi step p
        r = exp(sin(theta)) - 2 * cos(4*theta) + sin(1/24 * power((2*theta - pi),5))
        x = r*cos(theta) : y = r*sin(theta)
        2d_pen_color rnd(255),rnd(155),rnd(25) : 2d_poly_to xc+coef*x,yc-coef*y
    next theta
END_SUB
' ******************************************************************************
' Tracé d'un napperon
' Paramètres :
' xc,yc : coordonnées du centre du napperon
' r     : rayon du cercle circonscrit au napperon
' Exemple d'appel : Napperon(300,220,200)

SUB Napperon(xc,yc,r)
    dim_local a,b,x,y,n,pi,p,x0,y0
    n = 25 : pi = acos(-1) : p = 2*pi/n
    for a = 0 to 2*pi step p
        x0 = xc + r * cos(a) : y0 = yc + r * sin(a)
        for b = a + p to 2 * pi - p step p
            x = xc + r * cos(b) : y = yc + r * sin(b) : 2d_line x0,y0,x,y
        next b
     next a
END_SUB
' ******************************************************************************
' Tracé d'un secteur circulaire
' Paramètres:
' xc,yc : coordonnées du centre du secteur
' deb,fin : respectivement angle de debut et angle de fin du tracé en DEGRES
' rayon : rayon du secteur
' REMARQUES :
' * Le sens du tracé est le sens trigonométrique (sens anti-horraire)
' * les angles deb et fin peuvent être positifs, négatifs ou nuls.
' * Ils peuvent être > 360° en valeur absolue.
' Exemple d'appel :
' Secteur_Circulaire(300,220,0,90,200)
' Secteur_Circulaire(300,220,60,120,150)
' Secteur_Circulaire(300,220,-30,-60,200)
' Secteur_Circulaire(300,220,-60,-30,200)

SUB Secteur_Circulaire(xc,yc,deb,fin,rayon)
    dim_local x,y,a,pi,rad,p
    pi = acos(-1) : rad = pi/180 : deb = mod(deb,360) : fin = mod(fin,360)
    if deb < 0 then deb = deb + 360
    if fin < 0 then fin = fin + 360
    if deb > fin then  deb = deb - 360
    2d_poly_from xc,yc
       for a = deb to fin
           x = rayon*cos(a*rad) : y = rayon*sin(a*rad) : 2d_poly_to xc+x,yc-y
       next a
    2d_poly_to xc,yc
END_SUB
' ******************************************************************************
@Ygeronimi
Tu peux t’en servir pour Le Mag.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 25 Aoû 2013 - 18:41

@ Papydall,

Ce n' est ni contre toi, ni contre personne d' ailleurs mais
Je ne prendrai pas (plus) sur le forum pour publier sur le site.
Je pense que les démarches établies pour les publications sur le site
sont les bonnes.
Si je me mets à devoir récupérer les subs ou les articles sur le forum
je vais devoir en créer les documents explicatif et prendre sur mon temps
de programmation personnel même si j' en ai un peu aujourd'hui ce ne sera
peut être plus le cas plus tard et les mauvaises habitudes ayant la vie dure
je préfère que nous gardions les bonnes.Laughing 

Donc, si tu veux que je publie, un petit zip avec le *.bas et le *.txt qui va avec...Laughing

PS: ceux ci dit, je trouve très bien toutes ces procédures, c' est du bon boulot ...
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: SUBs de tracé de figures géométriques   Dim 25 Aoû 2013 - 19:39

Oui, bien vu Papydall: Jolies proc bien utiles Wink
Il y a aussi la rotation d'un objet par rapport à son centre que l'on avait vu pour le jeu de chars qui serait à mettre dedans, je pense car c'est carrément pratique.

Plus qu'à les mettre sur le webdav d'Ygeronimi pour qu'elles soient ajoutées dans la collection Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: SUBs de tracé de figures géométriques   Dim 25 Aoû 2013 - 20:29

Tu as certainement raison Ygeronimi.
Mieux vaut prendre les bonnes habitudes.
Le zip est sur ton Webdav dans SUBs\Papydall\Figures_geometriques.zip
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: SUBs de tracé de figures géométriques   Mar 27 Aoû 2013 - 19:54

@Ygernimi
Je ne voie pas mes subs de figures géométriques ni sur ton Webdav ni sur Panoramic le Mag.
Dois-je échanger mes lunettes contre un binocle ?   Shocked


Dernière édition par papydall le Lun 2 Sep 2013 - 23:57, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 27 Aoû 2013 - 20:25

ha,ha...Peut être... Laughing 

Plus sérieusement, j' ai pris et intégré les procédures à la maquette du site.
Comme je l' ai dit, je prépare le n° 3 avec quelques modifs ( texte de la page d' accueil,
Présentation de l' historique, et des petites bricoles ) et je mettrai tout en ligne en même
temps. Les procédures que vous me posterez d'ici là étofferont un peu la publication 
de ce n° 3 et le rendront plus attrayant pour les lecteurs.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: SUBs de tracé de figures géométriques   Mar 27 Aoû 2013 - 20:31

OK. Je pige.


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

avatar

Nombre de messages : 7975
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 27 Aoû 2013 - 20:40

Tu peux continuer à envoyer des procédures, je les traite au fur et à mesure.
Je les efface du webdav quand elles sont traitées pour laisser de l' espace mémoire
sur le serveur.

Tout est stocké sur une clé USB et je fais une sauvegarde assez régulièrement 
sur le Webdav dédié ouvert par Jicehel.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: SUBs de tracé de figures géométriques   

Revenir en haut Aller en bas
 
SUBs de tracé de figures géométriques
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» SUBs de tracé de figures géométriques
» Comment récuperer les tracés, suite à un changement de PC.
» Modification de tracé en route
» Importation tracés
» Création Itinéraire à partir de Tracé sur version 3.3.2

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 :: Vos sources, vos utilitaires à partager-
Sauter vers: