π
<-
Chat plein-écran
[^]

Manque un pixel en affichant un rectangle

Manque un pixel en affichant un rectangle

Message non lude ptijoz » 14 Nov 2018, 14:36

Bonjour
je me suis amusé à faire une fonction pour dessiner un rectangle avec la version 18.0 beta
voici le code :
Code: Tout sélectionner
from kandinsky import *
#c couleur
#e epaisseur
#h hauteur
#w largeur
def rectangle(x,y,w,h,c,e):
  for i in range(e):
    draw_line(x,y+i,x+w,y+i,c)
    draw_line(x-i+w,y,x-i+w,y+h,c)
    draw_line(x+w,y-i+h,x,y-i+h,c)
    draw_line(x+i,y+h,x+i,y,c)


appel de la fonction :
>>> c=color(255,0,0)
>>> rectangle(10,10,50,150,100,c,4)


ce qui donne un rectangle d'épaisseur de bord de 4 pixels : et j'ai l'impression qu'il manquerait un pixel en bas à droite...
Une idée ?
Merci de vos conseils

Image
Dernière édition par ptijoz le 14 Nov 2018, 19:56, édité 2 fois.
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Message non lude critor » 14 Nov 2018, 16:50

Cela le fait aussi avec une épaisseur de 1.
Or tes coordonnées me semblent bonnes dans ce cas...
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.6%
 
Messages: 41500
Images: 14703
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Manque un pixel en affichant un rectangle

Message non lude ptijoz » 14 Nov 2018, 16:54

Merci d'avoir regardé
Un bug dans la fonction draw_line ?
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Message non lude jean-baptiste boric » 14 Nov 2018, 17:42

Cette fonction est implémentée par du code natif du firmware qui existait déjà et que je n'ai fait que l'exposer dans Python. S'il y a un bug dedans, c'est a priori probablement du côté de KDContext::drawLine(). Je regarderai ça à l'occasion.
Avatar de l’utilisateur
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 4.5%
 
Messages: 374
Inscription: 21 Déc 2015, 22:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: boricj

Re: Manque un pixel en affichant un rectangle

Message non lude ptijoz » 14 Nov 2018, 19:59

jean-baptiste boric a écrit:Cette fonction est implémentée par du code natif du firmware qui existait déjà et que je n'ai fait que l'exposer dans Python. S'il y a un bug dedans, c'est a priori probablement du côté de KDContext::drawLine(). Je regarderai ça à l'occasion.

Merci d'avance :)
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Message non lude Extra44 » 14 Nov 2018, 20:23

j'ai recopié ton code dans du python et adapté (avec du tkinter) sur mon PC.
J'ai remarqué la ligne ou il y a un i seul en trop, et aussi que quand on prend w et h en tailles, alors les pixels doivent aller de x a x+w-1, et de y a y+h-1, il manque les -1, sinon le rectangle est plus grand de 1 pixel en x et en y.
J'étais partit la dessus, mais dans mon python sur PC, le cadre etait bien plein.... donc meme si ton rectangle est plus gros qu'il ne le faut, le bug du pixel manquant ne vient effectivement (à priori ) pas de ton code.
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: Manque un pixel en affichant un rectangle

Message non lude ptijoz » 14 Nov 2018, 21:08

Bonjour
Merci pour tes tests et tes corrections de code :)
Au départ j'avais codé en "dur" car mon souci était de reproduire ce "bug"
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Message non lude ptijoz » 15 Nov 2018, 15:57

J'ai refait le code suite réponse de @Extra44
si je mets f=0 le rectangle est trop grand de 1 pixel
et si je mets f=1 le rectangle semble être de la bonne taille mais il manque toujours un pixel
Vous confirmez ?

Code: Tout sélectionner
from kandinsky import *
def rectangle(x,y,w,h,c,e):
  f=1
  for i in range(e):
    draw_line(x,y+i,x+w-f,y+i,c)
    draw_line(x-i+w-f,y,x-i+w-f,y+h-f,c)
    draw_line(x+w-f,y-i+h-f,x,y-i+h-f,c) 
    draw_line(x+i,y+h-f,x+i,y,c)
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Message non lude Extra44 » 15 Nov 2018, 20:47

Voici le fichier demandé si cela peut servir . NB : c'est sur python sur PC windows, avec l'interface tkinter : ton algo fonctionne sur PC !
J'ai du adapter le code pour faire apparaitre la couleur (pasde choix possible, pour l'instant c'est du rouge),ce qui nous/toi interesse, c'est la partie def rect0(...) .

Comme dit précedemment, je ne peux pour ma part confirmer ton bug, je ne peux que juste confirmer que ton code marche bien (semble t il) sur PC/WIndows 10/Python 3.6 avec tkinter .
Je n'en suis qu'a la version 1.6 sur numworks ... donc je ne peux tester ton bout de code.
Fichiers joints
kandi.py
(657 Octets) Téléchargé 64 fois
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Re: Manque un pixel en affichant un rectangle

Message non lude ptijoz » 15 Nov 2018, 21:30

merci pour le code que je viens de le tester sous Linux avec Python 3 .6 et ça fonctionne bien et ce sans manque de pixel.
Je pense que Jean-Baptise Boric saura dire dire si c'est un bug dans le firmware

Bien à toi et encore merci.
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Suivante

Retourner vers Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 10 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1332 utilisateurs:
>1307 invités
>20 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)