Forum Liberty Basic France

Débutant » Graphic Pie Comment passer des variables au lieu de valeurs dans les paramètres.
Le 19/02/2018 à 09h14

Libertynaute Actif

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 121
Bonjour à Tous.

J'ai à disposition deux valeurs et j'aimerais réaliser un graphic du type Pie.
J'ai pris comme exemple le fichier pie.bas de Justbasic.
Lorsqu'on met des valeurs en clair c.à.d exemple: -235 et et aussi 125 (pour faire la sonne de 360 degrés, cela fonctionne.
Mais si je met des variables exemple: x1 et y1 qui contiennent des valeurs à la place des nombres, cela ne fonctionne pas. x1 = abs-(235) et y1 = 125
J'ai essayé plusieurs choses, mais sans succès ...
Quelqu'un a-t-il une idée ?
Merci

Code VB :
 
'---------------------------------------------
' PIE3.bas
'---------------------------------------------
 global x, y, x1, y1
   '..........................
    x = int((360/64)*40) '225
    x1 = abs-(x)
   '..........................
    y = int((360/64)*24)   '135
    y1 = abs(y)
'--------------------------------------------------
    nomainwin
    WindowWidth  = 400 : WindowHeight = 340
    UpperLeftX = int((DisplayWidth  - 605) / 2)
    UpperLeftY = int((DisplayHeight - 480) / 2)
    button #1.button1, "&Exit", [quit], UL, 20, 15, 60, 40
    textbox #1.t1, 20, 75, 160, 25
    textbox #1.t2, 220, 75, 160, 25
    graphicbox #1.g1,  20, 120, 160, 160
    graphicbox #1.g2, 220, 120, 160, 160
    open "  P I E " for window_nf as #1
    #1 "trapclose [quit]"
   '...............................................
    #1.t1, x1; "  ------  ";y1
   '...............................................
    #1.t2, "x1 = " ;x1; " ---  y1 = ";y1
   '...............................................
    #1.g1, "home ; down"
    #1.g1, "backcolor green"
   '...............................................
    #1.g1, "piefilled 120 120 315 -225"
    #1.g1, "flush"
   '...............................................
    #1.g1, "backcolor red"
   '...............................................
    #1.g1, "pieFilled 120 120 315 135"
    #1.g1, "flush"
 
   '///////////////////////////////////////////////

    #1.g2, "home ; down"
    #1.g2, "backcolor green"
   '...............................................
    #1.g2, "piefilled 120 120 315 x1"
    #1.g2, "flush"
   '...............................................
    #1.g2, "backcolor red"
   '...............................................
    #1.g2, "pieFilled 120 120 315 y1"
    #1.g2, "flush"
 
wait
'--------------------------------------------------
[quit]
  close #1
End
'--------------------------------------------------
____________________
Castel

   
Le 19/02/2018 à 16h00

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2484
Essaye ça:
#1.g2, "pieFilled ";"120";" ";"120";" ";"315";" ";x1
Et ça:
#1.g2, "pieFilled ";"120";" ";"120";" ";"315";" "; y1
Un espace après piefilled et des espaces entre quillemets
Je n'ai pas épluché le code mais chez moi avec la modif ça sort deux camemberts identiques.
____________________
Roro

   
Le 19/02/2018 à 23h23

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Juste un prétexte pour dire bonjour,

L'illustration de Roland est très parlante, rien de plus à dire, mais on peut aussi résumer comme ça : Code VB :
#1.g2, "piefilled 120 120 315 ";x1


et si on veut mettre une variable "abc" en second paramètre, ça donne : Code VB :
#1.g2, "piefilled 120 ";abc;" 315 ";x1


Toujours un espace entre chaque donnée, qu'elle soit inscrite "en dur" dans la chaine ou fournie sous la forme d'une variable...

Voilà.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 19/02/2018 à 23h50

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2484
Christophe tu es un très bon inventeur de syntaxes
Reste à espérer que Castel voulait bien deux fromages
Mais envoyer des % dans les fromages ça risque d'être une autre paire de manches
____________________
Roro

   
Le 20/02/2018 à 09h29

Libertynaute Actif

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 121
Magnifique, ça fonctionne !
Avant de demander de l'aide, j'ai consulté des Helps sur la fonction "piefilled", et je n'ai pas trouvé d'info sur ce genre de syntaxe et ponctuation.
J'ai besoin que d'un fromage pour ma petite application. J'en ai mis deux à fin d'être plus clair et plus explicite dans ma demande.
Maintenant je peux aller de l'avant dans cette partie de l'app.
Je bataille encore avec mon fichier séquentiel xxxx.txt et j'espère en venir à bout.
Merci Roland, merci Christophe.
____________________
Castel

   
Le 20/02/2018 à 10h15

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2484
Citation:
je n'ai pas trouvé d'info sur ce genre de syntaxe

Oui dans la doc, il n'y a que la syntaxe de base
Il existe tout un tas de syntaxes exotiques à découvrir, je ne connaissais pas celle de Christophe.
Il faut faire des essais, à l'empirisme.
Citation:
Je bataille encore avec mon fichier séquentiel xxxx.txt

Bah dis le soucis (fait un thread "Soucis de fichier").
____________________
Roro

   
Le 22/02/2018 à 17h45

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Roland:
Mais envoyer des % dans les fromages ça risque d'être une autre paire de manches

à défaut de %, on peut envoyer des str$ :
Code VB :
#1.g2, "piefilled 120 ";str$(abc);" 315 ";x1


On peut avoir envie de couper l'instruction en deux :
Code VB :
a$="piefilled 120 ";abc;" 315 ";x1
#1.g2, a$


A priori, tout ce qui est fonction "chaîne" devrait fonctionner. J'ai modifié l'exemple Pie : vérifier une fois dans l'éditeur que l'instruction : Code VB :
print #1, "pieFilled ";word$("80 90 100 140",3);" ";left$("100315",3);" ";right$("100315",3);" ";mid$("114511",3,2)

tient sur la même ligne.

Exemple Pie modifié :
Code VB :
 
    nomainwin
 
    open "pie" for graphics as #1
 
        print #1, "home ; down"
        print #1, "backcolor red"
        print #1, "piefilled 100 100 315 -315"
        print #1, "north ; turn 67 ; up ; go 20 ; down"
        print #1, "backcolor yellow"
        'print #1, "pieFilled 100 100 315 45"
        print #1, "pieFilled ";word$("80 90 100 140",3);" ";left$("100315",3);" ";right$("100315",3);" ";mid$("114511",3,2)
        print #1, "flush"
        input r$
 
    close #1
 


Mais faut tester. Du temps où je travaillais sous Windows, il m'avait semblé lire un mini-cursus d'apprentissage dans l'aide. Mais je ne peux pas le retrouver, car aujourd'hui je ne suis plus sous Windows, et l'accès à l'aide se résume aux mots-clefs. Cela devait ressembler à ce qu'on trouve ici. En anglais, toujours. Mais le plus souvent, pour moi, c'est de la recherche personnelle au cas par cas. Ce serait plus sérieux de réellement apprendre pas à pas.

Il m'arrive de temps en temps : d'aller là, mais c'est aussi en anglais, et c'est bientôt fermé.

Et parfois chez nous, en cas de doute.

Voili

Autrement, dans ton listing du début de notre discussion, on a ces lignes :
Code VB :
 
    x = int((360/64)*40) '225
    x1 = abs-(x)
   '..........................
    y = int((360/64)*24)   '135
    y1 = abs(y)
 

Il n'y a pas besoin de recourir aux valeurs absolues, puisque x et y sont toujours positifs (ou alors c'est le résultat d'un moment de flemme ? il est très facile d'ajouter un "-" entre abs et (x) pour obtenir un x1 négatif^^)

Donc, x1 devient -x, puisque abs vaut zéro, et y1 est toujours égal à y.

En JB/LB, pour inverser le signe d'une variable, on ne peut pas écrire x1=-x car le compilateur n'en voudra pas, il faut écrire x1=0-x. Par contre il est permis de définir directement une variable négative : x1=-225

En espérant que je ne radote pas ;)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 22/02/2018 à 20h07

Libertynaute Actif

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 121
Je lis avec intérêt et attention ces messages toujours utiles et pour ma part je viens d’apprendre d’autres possibilités. Comme j’avais fait plusieurs essais sans succès, j’ai envoyé l’exemple en oubliant d’enlever abs pour le nombre positif. Les valeurs/pourcentages des deux portions, je les ai mis en-dehors du camembert, ce qui n’ai pas le top ...
____________________
Castel

   
Débutant » Graphic Pie Comment passer des variables au lieu de valeurs dans les paramètres.  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie