π
<-

(WIP) Editeur d'images

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: (WIP) Editeur d'images

Postby Levak » 10 Aug 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: Select all
...
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: Select all
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
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: (WIP) Editeur d'images

Postby Lionel Debroux » 11 Aug 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6875
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Postby Chockosta » 11 Aug 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.
Last edited by Chockosta on 11 Aug 2011, 14:24, edited 1 time in total.
User avatar
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 2.2%
 
Posts: 213
Joined: 24 Feb 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Math sup

Re: (WIP) Editeur d'images

Postby Lionel Debroux » 11 Aug 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: Select all
*
*/
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: Select all
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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6875
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Postby Chockosta » 11 Aug 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 ?
User avatar
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 2.2%
 
Posts: 213
Joined: 24 Feb 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Math sup

Re: (WIP) Editeur d'images

Postby Lionel Debroux » 11 Aug 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6875
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Postby Loulou 54 » 11 Aug 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 !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.7%
 
Posts: 1988
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: (WIP) Editeur d'images

Postby Chockosta » 11 Aug 2011, 17:25

Lionel :
C'est une idée, mais lorsque le zoom est de 100%, le transparent aura l'air noir :/
User avatar
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 2.2%
 
Posts: 213
Joined: 24 Feb 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Math sup

Re: (WIP) Editeur d'images

Postby Lionel Debroux » 11 Aug 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6875
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: (WIP) Editeur d'images

Postby Chockosta » 11 Aug 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
User avatar
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 2.2%
 
Posts: 213
Joined: 24 Feb 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Math sup

PreviousNext

Return to Nspire-Lua

Who is online

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

-
Search
-
Social TI-Planet
-
Featured topics
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
-
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.
2076 utilisateurs:
>2033 invités
>37 membres
>6 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
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)