Page 1 sur 2

HP prime fonction graphique floodfill

Message non luPosté: 23 Oct 2020, 21:06
de albud44
Bonjour Bernard Parisse et à tous,

Suite au conseil de Critor sur le forum, je souhaiterais savoir si il serait possible d'ajouter une fonction du type
Code: Tout sélectionner
floodfill(x,y,couleur_pixel_a_remplacer,couleur_de_remplacement,transparence)

-
Je précise que j'en ai fait une pour un logiciel de dessin bitmap sur la hp prime avec le langage hppl, mais cela reste lent pour des grandes figures. Ceci dit, elle fait son boulot et permet de remplir une forme libre fermée tout en évitant de des formes libres qui seraient à l'intérieur.

Dans le logiciel géométrie, on voit que cette fonction existe en interne pour les polygones.

Serait-il possible un jour d'accéder à une telle fonction avec toute les options et la fonctionnalité floodfill attendu façon pot de peinture paint ?

Merci par avance la ou les réponses qui seront apportées, quelles quelles soient.

A bientôt.

Re: HP prime fonction graphique floodfill

Message non luPosté: 23 Oct 2020, 21:10
de Lionel Debroux
Suggestion: passer un argument supplémentaire pour sélectionner le type de FloodFill: 4 directions, 8 directions sont les principaux types que je connais.

Re: HP prime fonction graphique floodfill

Message non luPosté: 23 Oct 2020, 21:13
de albud44
Je ne suis pas un spécialiste, mais je vois et effectivement, c'est un plus.

Re: HP prime fonction graphique floodfill

Message non luPosté: 23 Oct 2020, 21:16
de albud44
Ce serait possible de l'avoir en fonction comme line_p() et line() un jour sur hp prime ?

Re: HP prime fonction graphique floodfill

Message non luPosté: 23 Oct 2020, 21:25
de albud44
Pour une figure de ce genre mon prog très court par récursivité met 4 secondes et je pense qu'avec une fonction programmer en interne, cela serait instantané. Oups, je viens de me rendre compte que je vois pas comment montrer l'exemple pris en photo avec mon smartphone avec lequel j'écris ce message. Bref, la figure plus une à l'intérieur prend une bonne partie de l'écran, soit environ 1/3 de pixel de l'écran.

Re: HP prime fonction graphique floodfill

Message non luPosté: 24 Oct 2020, 07:16
de parisse
Xcas et KhiCAS n'ont pas de fonction de ce type, on peut par contre remplir l'interieur d'un polygone avec la commande draw_polygon(...,filled). Je ne crois pas que ce soit utilisable sur la Prime actuellement.
Je vous conseille de poser la question sur hp-museum ou Cyrille est susceptible de la lire.

Re: HP prime fonction graphique floodfill

Message non luPosté: 24 Oct 2020, 08:23
de critor
parisse a écrit:on peut par contre remplir l'interieur d'un polygone avec la commande draw_polygon(...,filled). Je ne crois pas que ce soit utilisable sur la Prime actuellement.

Juste pour information j'arrive, certes difficilement, à remplir l'intérieur d'une ellipse dans le contexte CAS/Python de la HP Prime pour le 2ème défi de notre concours de rentrée :
viewtopic.php?t=24309&p=256606#p256606

Je n'arrive juste pas à le faire en une seule ligne, les saisies de listes en paramètres n'étant pas interprétées avec le bon type d'objet dans ce contexte :
Image

Solution pas propre dans le script polycal2.py, faire passer les valeurs des paramètres en question par les listes globales L1, L2, etc. :
Code: Tout sélectionner
def hp_fill_ellipse(x, y, rx, ry, c):
  global L1, L2
  c, L1 = col3_2_rgb(c, [8, 8, 8], 1), [rx, ry]
  L2 = [c, c]
  arc_p(x, y, L1, 0, 2*pi, L2)

Re: HP prime fonction graphique floodfill

Message non luPosté: 24 Oct 2020, 10:32
de parisse
Ce n'est pas tres etonnant, car les fonctions graphiques utilisees ne sont pas des fonctions CAS. Il faudrait que mes propres fonctions de traces Xcas soient accessibles...

Re: HP prime fonction graphique floodfill

Message non luPosté: 29 Oct 2020, 10:21
de albud44
Bonjour Bernard Parisse,

Peut-on espérer un jour avoir accès aux fonctions de traces de Xcas ?

Re: HP prime fonction graphique floodfill

Message non luPosté: 29 Oct 2020, 12:01
de parisse
Oui, mais je ne peux absolument pas vous donner d'echeance!