π
<-

Manque un pixel en affichant un rectangle

Manque un pixel en affichant un rectangle

Unread postby 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: Select all
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
Last edited by ptijoz on 14 Nov 2018, 19:56, edited 2 times in total.
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/
User avatar
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 34.3%
 
Posts: 334
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Male
Calculator(s):
MyCalcs profile
Class: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Manque un pixel en affichant un rectangle

Unread postby 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 rêveur, un peu écolo.
https://joz.alwaysdata.net/info/
User avatar
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 34.3%
 
Posts: 334
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Male
Calculator(s):
MyCalcs profile
Class: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Unread postby 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.
User avatar
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 5.5%
 
Posts: 379
Joined: 21 Dec 2015, 22:22
Gender: Not specified
Calculator(s):
MyCalcs profile
GitHub: boricj

Re: Manque un pixel en affichant un rectangle

Unread postby ptijoz » 14 Nov 2018, 19:59

jean-baptiste boric wrote: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 rêveur, un peu écolo.
https://joz.alwaysdata.net/info/
User avatar
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 34.3%
 
Posts: 334
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Male
Calculator(s):
MyCalcs profile
Class: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Unread postby 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.
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: Manque un pixel en affichant un rectangle

Unread postby 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 rêveur, un peu écolo.
https://joz.alwaysdata.net/info/
User avatar
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 34.3%
 
Posts: 334
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Male
Calculator(s):
MyCalcs profile
Class: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Unread postby 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: Select all
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 rêveur, un peu écolo.
https://joz.alwaysdata.net/info/
User avatar
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 34.3%
 
Posts: 334
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Male
Calculator(s):
MyCalcs profile
Class: a la poursuite du vent et des etoiles.

Re: Manque un pixel en affichant un rectangle

Unread postby 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.
You do not have the required permissions to view the files attached to this post.
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: Manque un pixel en affichant un rectangle

Unread postby 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 rêveur, un peu écolo.
https://joz.alwaysdata.net/info/
User avatar
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 34.3%
 
Posts: 334
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Male
Calculator(s):
MyCalcs profile
Class: a la poursuite du vent et des etoiles.

Next

Return to Programmation Python

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1099 utilisateurs:
>1025 invités
>67 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)