Forum

Catégorie : Support
Forum : TI-82 STATS.fr
Vues : 730
Réponses : 3
Type : discussion
Etat : réponses autorisées

Effaceur

clem494949 le 14/09/2013 à 15:38
Bonjour,
voici un petit projet : l’effaceur
Voici un programme qui va effacer: une ligne, un cercle, un carré (de base parallèle à crazy.gif, un triangle, un texte ou une figure quelconque sans effacer le reste (sauf croisement de figure)

comment ça marche et bien on vient demander le type et la position de l'item, puis on inverse les pixel d'un rectangle contenant l'objet, on vient "redessiner" l'objet sur lui même puis on ré-inverse le rectangle ce qui efface la forme (au début j'inversait la totalité de l'écran mais c'était long).

Cet outil est encore en fasse de création
Code

menu("qu'effacer","ligne",0,"cercle",1,"carré",2,"triangle",3,"texte",4,"forme",5

Lbl 0
Input("x",A
Input("y",B
Input("x'",C
Input("y'",D
0->Z
Goto 6

Lbl 1
Input("x",E
Input("y",F
Input("rayon",G
E+G->A
F+G->B
E-G->C
F-G->D
1->Z
Goto 6

Lbl 2
Input("x1",A
Input("y1",B
Input("x2",C
Input("y2",D
Input("x3",E
Input("y3",F
2->Z
Goto 6

Lbl 3

Lbl 4
       (pour les figures et les triangles il faut utiliser un système de liste)
Lbl 5

Lbl 6
(ici il faudrait placer un convertisseur de position type dessin au type texte sur 4 autre variable que A,B,C,D)
For(X,A,C
For(Y,B,D
pxl-change(X,Y
End
End
If Z=0
Ligne(A,B,C,D
If Z=1
Cercle(E,F,G
If Z=2
Then
Ligne(A,B,A,D
Ligne(A,B,C,B
Ligne(C,D,A,D
Ligne(C,D,C,B
End
If Z=3

If Z=4

If Z=5
For(X,A,C
For(Y,B,D
pxl-change(X,Y
End
End

Le système restera incomplet tant que je n'ai pas confirmation du fait qu'il n'existe pas de formule qui efface les formes.
linkakro le 14/09/2013 à 16:12
Seules les lignes, les Pt et les Pxl permettent d'effacer naturellement.

L'idée d'inverser est géniale.
Mais pas utilisable dans un autre programme fluide comme un jeu.

Tu n'auras pas besoin de convertir les repères. Il existe aussi bien Pt-Change que Pxl-Change.

Pour changer de repère ce serait
X2=Xmin2+(X1-Xmin1)*(Xmax2-Xmin2)/(Xmax1-Xmin1)
en adaptant les données.
Remarque : j'ai créé cette formule moi-même, cela n'empêche pas quelqu'un d'autre de l'avoir inventé aussi.
clem494949 le 14/09/2013 à 20:55
Étant donné que les ligne sont finalement effaçable je pense ne pas me casser la tête et je vais utiliser l'inversion uniquement pour les cercles cela sera plus efficace mais c'est presque decevant de voir mon idée réduite à ce point là maxiangry.gif

Rapidement je n'utilise pas pt-change car il comporte des bugs que j'ai remarqué en faisant le changement total de l'écran et px-change fonctionne mieux
Merci d'avoir mis à ma disposition ce code :-)


PS Au fait les forums types ti 82 ti82 stat et tous : sont-il censé comporté des programmes ou plutôt des problèmes matériel ou en bref suis-je dans la bonne rubrique (car il y a aussi la rubrique programmes des membres)?
linkakro le 14/09/2013 à 23:15
J'espère que ce n'est pas moi qui t'ai blessé par mon manque de tact.
Dommage en effet que le TI-Basic ne permette pas de faire ça efficacement.

Je connais un seul bug sur les Pt. La réinitialisation innattendue de Y par certaines fonctions (dont les Pt) suite à certaines modifications du graphe.
https://tout82.pages-perso.fre[...].php?sujet=2068

réponse au PS :
Une question sur un modèle donné devrait aller dans la rubrique dédiée, mais une question sur la programmation même d'un modèle précis peut aller dans la rubrique aide à la progra. On a le choix dans des cas comme ça. De même une connexion à une ti82 devrait aller dans la rubrique de connexion, mais on peut la mettre aussi dans ti82...