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
» Panoramic et ses curiosités
par Klaus Aujourd'hui à 2:20

» Synedit Parameters
par Klaus Aujourd'hui à 1:33

» Utilitaire de suppression de fichiers
par Yannick Hier à 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» Concours de Morpions
par jjn4 Jeu 22 Juin 2017 - 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Les fonctions LINOR et ARCOR

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

avatar

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

MessageSujet: Les fonctions LINOR et ARCOR   Mar 28 Avr 2015 - 16:58

Voici mon premier utilitaire !

LINOR veut dire ‘ligne ou droite orientée’ et ARCOR ‘Arc orienté’.

Vous connaissez la fonction '2D_LINE' qui trace une droite de a à b, de même pour les
fonctions '2D_POLY_FROM' et '2D_POLY_TO' !
Mais voilà, lorsque vous voulez coïncider une extrémité b de cette droite à l'extrémité c
d'une autre droite, vous êtes obligé de tâtonner souvent en cherchant son orientation ce
qui vous fait perdre du temps.
Il en est de même pour l'ARC qui, bien curieusement, semble faire défaut dans la liste des
primitives Panoramic.

J'ai donc "inventé" deux fonctions pour cinq raisons:
1°) LINOR utilise le suivi de tracé. Idem pour ARCOR.
2°) La droite ou l'arc sont orientables selon l’angle donné par le programmeur.
3°) Possibilité d'attribuer un type de tracé (fin ou épais) avec '2D_PEN_WIDTH' ou autre.
4°) En géométrie 2D ou 3D, ou en trigonométrie, le tracé ne se fait plus par plots mais
par lignes. Il n’est pas possible de se servir ici des fonctions ROT et SCALE.
5°) Ce programme vous évite de faire des calculs par formules mathématiques !

Exemple d'appels de fonctions prévues pour Panoramic:
LINOR(x1,y1,lr,la,lt) où
‘x1 et y1’ sont les coordonnées de départ de la droite,
‘lr’ est la longueur en pixels,
‘la’ est l'angle de direction (0 à 360 degrés),
et ‘lt’ le tracé (1 pour actif <-> pen Down), 0 pour inactif <-> pen up).

ARCOR(ax,ay,ar,ad,al,at) où
‘ax et ay’ sont les coordonnées de départ de l'arc,
‘ar’ le rayon de l'arc
‘ad’ la direction angulaire de départ en degrés (de 0 à 360),
‘al’ la longueur de l'arc
et enfin ‘at’ est l'orientation (1 pour gauche, -1 pour droite).

Pour tracer la droite ou l'arc suivants, on répète simplement x et y (sans les valeurs), ce
qui assure un suivi de tracé et on modifie les autres valeurs selon sa convenance.

D’après la figure qu’il veut dessiner, le programmeur a toute liberté de choix entre LINOR
pour tracer des droites et ARCOR pour les arcs.

Ces deux fonctions associées, très faciles d'emploi, permettent d'obtenir à bonne vitesse
une très grande variété de figures géométriques fixes en 2D ou 3D.

Code:
Code:
rem
' ===========================================================
rem                Auteur: Parpaiun
rem          Date-version: 19/04/2015
rem ============================================================================
dim pi,rad,th,x,x2,y,y2
width 0,500 : height 0,500
caption 0,"Les fonctions LINOR et ARCOR"
pi = acos(-1) : rad = pi / 180

alpha 10 : font_name 10 ,"ariel" : font_bold 10 : font_size 10,18 : top 10,50 : left 10,50
caption 10,"Les fonctions LINOR et ARCOR" + chr$(13) + string$(15," ")+"Par Parpaiun"

' *****************************************************************************
rem A partir d'ici, mettez ici vos directives de tracé :
2d_pen_width 3
x = 100 : y = 430
linor(x,y,200,0,1)
linor(x,y,150,90,1)
arcor(x,y,100,90,180,-1)
linor(x,y,150,270,1)

' ===============================================
x = 220 : y = 350
linor(x,y,40,0,1)
linor(x,y,30,90,1)
arcor(x,y,20,90,180,-1)
linor(x,y,30,270,1)
' ==============================================
x = 150 : y = 350
linor(x,y,40,0,1)
linor(x,y,30,90,1)
arcor(x,y,20,90,180,-1)
linor(x,y,30,270,1)

end
' terminate
rem
' ============================================================
sub linor(x1,y1,lr,la,lt)
    la = la * rad
    for th = 1 to lr
        x2 = x1 + th * cos(la)
        y2 = y1 + th * sin(la * -1)
    next th
    2d_pen_color 0,0,0: if lt = 0 then 2d_pen_color 255,255,255
    2d_line x1,y1,x2,y2
    x = x2: y = y2
END_SUB
rem
' ============================================================
sub arcor(ax,ay,ar,ad,al,at)
    dim_local mx,my,n
    ad = (360 - ad) * rad
    n = int(0.5 + ar * al * rad)
    for th = 1 to n
        if th > 1 then 2d_line mx,my,ax,ay
        mx = ax : my = ay
        ax = ax + cos(ad)
        ay = ay + sin(ad)
        ad = ad + at / ar
    next th
    x = ax : y = ay
END_SUB
rem =============================================================

Voilà. J'espère que les matheux en géométrie 2D ou 3D et en trigonométrie tireront profit de mon programme pour obtenir de belles figures plus ou moins complexes.

De la part de Parpaiun cheers cheers cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9971
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Les fonctions LINOR et ARCOR   Mar 28 Avr 2015 - 17:32

Intéressantes, ces fonctions. surtout pour l'arc.

Pour les lignes droites, as-tu regardé les commandes 2D_POLY_FROM (définit le point de départ d'un segment droit) et 2D_POLY_TO (définit le point d'arrivé d'un segment droit) ? Et pour tracer un polygone, tu fais une fois 2D_POLY_FROM, puis autant de fois que nécessaire 2D_POLY_TO, avec les coordonnées données au 2D_POLY_FROM pour le dernier 2D_POLY_TO, pour avoir un polygone fermé.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Parpaiun

avatar

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

MessageSujet: Les fonctions LINOR et ARCOR   Mar 28 Avr 2015 - 22:12

Bien reçu ton message 5 sur 5. C'est très bien pour un 2D_POLY_FROM puis plusieurs 2D_POLY_TO. Mais voilà, comment fais tu après pour faire suivre le tracé avec un ou plusieurs ARCS ? Je parie que tu n'as pas prévu ce problème ... Si je gagne, force est d'utiliser mes fonctions LINOR et ARCOR ! Si je perds, je te dois un apéro ! Bonsoir ! de Parpaiun Question

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Les fonctions LINOR et ARCOR   Mer 29 Avr 2015 - 2:10

Code:

' Tracer une figure quelconque  à l'aide de 2D_LINE
2d_line 100,100,200,100
2d_line 200,100,100,200
2d_line 100,200,200,200

' Tracé à l'aide de 2D_POLY_FROM / 2D_POLY_TO
' On choisi l'origine du tracé
2d_poly_from 300,100
' On poursuit
2d_poly_to 400,100 : 2d_poly_to 300,200 : 2d_poly_to 400,200

Pour l'apéro, c'est un peu tard maintenant : reportons-le à demain.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Contenu sponsorisé




MessageSujet: Re: Les fonctions LINOR et ARCOR   

Revenir en haut Aller en bas
 
Les fonctions LINOR et ARCOR
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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: