π
<-

(WIP) Editeur d'images

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: (WIP) Editeur d'images

Message non lude Levak » 10 Aoû 2011, 21:53

Je vois bien un modèle récursif, mais connaissant les limites du Lua, ça me parait un peu lourd. Mais bon, ça peut être jouable :
Code: Tout sélectionner
...
newColor = {255, 0, 255}
fill(grid[x][y], x, y)
...
function testColor(c1, c2)
  return c1[1] == c2[1] and c1[2] == c2[2] and c1[3] == c2[3]
end
...


Code: Tout sélectionner
function fill(color, x, y)
  for nx = x > 1 and x - 1 or x, x < dimX and x + 1 or x do
   for ny = y > 1 and y - 1 or y, y < dimY and y + 1 or y do
    if testColor(grid[nx][ny], color) then
     grid[nx][ny] = newColor -- global I guess
     fill(color, nx, ny)
    end
   end
  end
end
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: (WIP) Editeur d'images

Message non lude Lionel Debroux » 11 Aoû 2011, 08:16

Oui, Chockosta a dû implémenter un algorithme de FloodFill 4 points ou 8 points.
Le 4 points est parfois un peu bête (fonctionne mal avec des petites zones), mais le 8 points a tendance à remplir des zones beaucoup plus grandes que ce que voudrait l'utilisateur.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Message non lude Chockosta » 11 Aoû 2011, 13:45

J'ai juste utilisé une fonction récursive très simple similaire à celle de Levak... (en utilisant 4 points. Peut-être devrais-je en utiliser 8 ?)
C'est très rapide même avec des zones assez larges.
Dernière édition par Chockosta le 11 Aoû 2011, 14:24, édité 1 fois.
Avatar de l’utilisateur
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 2.2%
 
Messages: 213
Inscription: 24 Fév 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Math sup

Re: (WIP) Editeur d'images

Message non lude Lionel Debroux » 11 Aoû 2011, 13:56

Si tu veux vraiment faire un "pot de peinture" (FloodFill) qui réponde à tous les usages, en fait, il faut les deux, et donner à l'utilisateur une façon de passer de l'un à l'autre et un undo/redo :)

A l'utilisation, le défaut du FloodFill à 8 points est qu'à cause de sa propension à passer de l'autre côté d'une ligne, il remplit des zones que l'utilisateur, dans sa tête, ne veut justement pas que le FloodFill remplisse. Par exemple:
Code: Tout sélectionner
*
*/
X*
**
*

Si l'algorithme de FloodFill à 8 points arrive sur la case X, il va déclencher le remplissage de la case /... et de là, de toute la zone qu'on peut atteindre à partir de la case /.

Le FloodFill à 4 points ne donnera pas ce genre de mauvaises surprises, mais en contrepartie, il donne de mauvais résultats dans d'autres cas d'utilisation, où le FloodFill à 8 points, quant à lui, excelle. L'exemple extrême est le damier
Code: Tout sélectionner
XXXXX
X0X0X
XX0XX
X0X0X
XXXXX

Avec un FloodFill à 4 points, et un damier qui fait des dizaines de pixels de côté, bon courage pour faire changer tous les 0 :D
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Message non lude Chockosta » 11 Aoû 2011, 14:29

Tu as raison, j'ajouterai ça quand j'aurais mis en place les options des outils.
Pour l'instant je crée une version basique de chaque outil... (Il reste encore tellement à faire !)

D'ailleurs j'aimerais votre avis : pour montrer qu'un pixel est transparent et non blanc, comment faire ?
Avatar de l’utilisateur
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 2.2%
 
Messages: 213
Inscription: 24 Fév 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Math sup

Re: (WIP) Editeur d'images

Message non lude Lionel Debroux » 11 Aoû 2011, 15:21

Pour un pixel transparent, tu peux par exemple utiliser un fond grisé + une case cochée noire (carré du tour du pixel + X).
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Message non lude Loulou 54 » 11 Aoû 2011, 17:21

Ah oui je vois en effet, c'est pas trop compliqué.. :) Bien joué.

Elles n'ont donc pas les mêmes effets (les fonctions 8 ou 4 pts) par exemple pour ce cas là, n'est-ce pas ?
=>
100
010
A01

si j'applique en A :
4pts =>
100
110
111
8pts =>
111
111
111

:D:
Mes programmes => ici !
Avatar de l’utilisateur
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 1.7%
 
Messages: 1988
Images: 8
Inscription: 02 Aoû 2009, 00:00
Localisation: 54, près de Metz
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingé Logiciel chez Amazon

Re: (WIP) Editeur d'images

Message non lude Chockosta » 11 Aoû 2011, 17:25

Lionel :
C'est une idée, mais lorsque le zoom est de 100%, le transparent aura l'air noir :/
Avatar de l’utilisateur
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 2.2%
 
Messages: 213
Inscription: 24 Fév 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Math sup

Re: (WIP) Editeur d'images

Message non lude Lionel Debroux » 11 Aoû 2011, 17:27

Avec le zoom taille réelle, en effet, il n'y a pas de bonne solution...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Message non lude Chockosta » 11 Aoû 2011, 19:56

J'ai finalement mis de simples rayures gris clair. (Une case cochée est trop long à dessiner dans le cas d'une image entièrement transparente)
Image
Avatar de l’utilisateur
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 2.2%
 
Messages: 213
Inscription: 24 Fév 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Math sup

PrécédenteSuivante

Retourner vers Nspire-Lua

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
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.
2483 utilisateurs:
>2456 invités
>21 membres
>6 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
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)