π
<-

Graphes 3D et fonctions avancées ou programmées

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Graphes 3D et fonctions avancées ou programmées

Unread postby Manger » 10 Sep 2011, 10:47

Bonjour à tous,

En ayant assez d'attendre deux demi-plombes à chaque fois que je souhaitais tracer une courbe ou résoudre une inéquation avec ma Ti-89 (oh, la belle excuse...), j'ai décidé de m'acheter une Ti-NSpire CX CAS. Ce beau matin, je fus pris d'une furieuse envie de tracer la fonction Z = nCr(int(y), int(x))*(0.3)^int(x)*(1-0.3)^(int(y)-int(x)) : la probabilité d'obtenir X faces après Y lancers d'une pièce non équilibrée. Sa réponse : "Syntax error". J'ai essayé quelques bidouilles (utiliser une fonction externe, retirer le nCr...) et voici mes observations :
- Bêtement recopier la fonction dans une fonction codée dans le document binom(i, n, p) et lui demander de tracer binom(x, y, 0.3) ne fonctionne pas. J'avais essayé d'avoir un truc un peu plus propre en calculant d'abord int(i) et int(n) dans des variables locales, mais je ne pense pas que ça puisse changer grand chose (quoique, avec ces calculatrices, on ne peut être sûr de rien...)
- Retirer le nCr dans la ligne d'entrée permet à la calculatrice de tracer une surface.
- Retirer le nCr de la fonction que j'ai codée renvoie toujours "Syntax error".
- Tracer Z=1 fonctionne
- Tracer Z=2! ne fonctionne pas
- Tracer Y=2! en mode 2D fonctionne
- Tracer Z = intégrale de 0 à sqrt(y) de sqrt(x) ne fonctionne pas
(ne fonctionne pas = "Syntax error". Ti a réussi à surpasser Nokia dans le détail des messages d'erreurs...)
Je pense donc pouvoir conclure que le mode de tracé de surfaces 3D est extrêmement limité, ne permettant pas l'usage de certaines fonctions ; apparemment tout ce qui touche à la factorielle et plus généralement ce qui demande des notions de mathématiques dépassant ce qu'on voit au collège... De même, je ne pense pas qu'il soit possible de faire intervenir des fonctions programmées par nous-même dans le tracé de surfaces...

Avez-vous des problèmes similaires ? Des solutions ?

Jusque là, à part recoder un grapheur en LUA et trouver un moyen de le faire interagir avec la calculatrice pour éviter d'avoir à coder les fonctions qu'on veut tracer en LUA aussi, je ne vois pas trop quoi faire...
User avatar
Manger
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 9
Joined: 10 Sep 2011, 10:09
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Graphes 3D et fonctions avancées ou programmées

Unread postby Levak » 10 Sep 2011, 11:54

Oui, c'est assez troublant et je ai remarqué assez vite (pas exactement ce problème) que le graph 3D n'utilisait pas directement les fonctions internes de l'OS, on le sentait plus comme un programme étant le fruit d'un SDK au sein de TI, comme l'est l'application Vernier.

Lorsque j'aurais ré-implémenté les fonctions de création dans Make3D en lua à partir de celles que j'avais faite en Basic (notamment la génération de graphes 3D) je pense que cela résoudra une partie de ton problème =)

Si tu es vraiment impatient, prend les bibliothèques de création dernière version Basic supportée de Make3D (mk3d_lib ou mk3d_gui_lib) qui te généreront des matrices de points compatibles avec la dernière version de Make3D en lua

J'ai extrêmement peu de temps à accorder à la documentation, donc j'espère que tu seras indulgent sur ce point x)
Si tu as des questions ciblées j'essayerai d'y répondre.
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: Graphes 3D et fonctions avancées ou programmées

Unread postby Manger » 10 Sep 2011, 13:24

Je tiendrai pour ce qui est de la patience ; j'ai juste voulu me servir du grapheur pour répondre à une curiosité du matin. J'ai essayé la dernière version de Make3D en basic, et après avoir un peu bataillé j'ai finalement pu obtenir quelque chose sur le logiciel de bureau :-) Après, vu le temps que ça a pris sur un PC fixe, j'ose à peine imaginer ce que ça donnerait sur la pauvre calculatrice... (m'enfin, pour ce genre de graphe où un nombre bien défini de point est requis pour avoir une courbe précise, j'aurais pu baisser un peu la précision pour obtenir pile ce qu'il faut en points)
Image
J'ai jeté un coup d'oeil à la version lua mais je n'ai rien trouvé pour récupérer des données générées par mk3d_lib (j'ai créé une nouvelle page de calcul dans le classeur lua et fait mon appel à mk_func, mais ça doit être plus subtil que ça). Par contre, elle est beaucoup, beaucoup plus pratique que la version basic au niveau de la manipulation du graphe :-)
Pour mon cas, c'était juste une curiosité comme ça ; je pourrai vivre sans grapheur 3D, mais je trouvais juste un peu dommage d'avoir dépensé autant dans une calculatrice qui fait des erreurs dans les résolutions d'inéquations et qui ne sait pas tracer de surfaces 3D un peu évoluées avec l'OS de base... Bref.

Quoi qu'il en soit, bravo pour ton travail sur Make3D ! Je lui garde une place bien au chaud sur ma calculatrice pour quand la version lua aura mk_func() !
Last edited by Manger on 10 Sep 2011, 17:21, edited 1 time in total.
User avatar
Manger
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 9
Joined: 10 Sep 2011, 10:09
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Graphes 3D et fonctions avancées ou programmées

Unread postby Levak » 10 Sep 2011, 13:38

Merci =)
Pour ce qui est de Make3D en basic, oui, la lenteur est telle que la manipulation des listes est exponentielle en temps de manipulation ...
Pour la version Lua, cette dernière est beaucoup plus souple, et un bon nombre d'avantages par rapport aux basic.

Concernant mk_func(), je viens de me rappeler que j'ai désactivé temporairement l'import extérieur des mesh (matrices de points/faces).
Logiquement, il faudrait simplement remplacer un objet existant (cube, cube2 ou cube3). La synchronisation automatique fera le reste, "normalement" (je peux pas tester là maintenant tout de suite).
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: Graphes 3D et fonctions avancées ou programmées

Unread postby Manger » 10 Sep 2011, 17:34

J'ai réussi à obtenir quelque chose en faisant mon mk_func pour créer un objet "Chose", puis en faisant :
cube.points = Chose.point
cube.faces = Chose.face

Image

C'est vraiment fluide, mais il faut voir que je suis sur mon PC fixe, donc ça aide :-) Par contre les contrôles ne sont pas très très intuitifs ; j'aurais plutôt vu gauche/droite servir à faire tourner la courbe selon un axe vertical que l'on s'imaginerait dans l'univers (en gros, comme haut/bas pour l'axe horizontal, mais avec un axe vertical) ; après, c'est sûrement une question de goût ;-) Par contres, j'ai rencontré pas mal de petit artefacts avec cette grille ; il suffit d'essayer avec x+y sur -1,1;-1,1;-2,2 pour voir qu'il y a pas mal de petites choses qui clochent (points qui disparaissent quand ils sont trop loin, lignes qui traversent l'écran sans raison...) Je me souviens avoir eu des problèmes de ce genre quand j'ai voulu faire un moteur 3D basique en C (pour à la fin tout virer et utiliser OpenGL pour gérer les polygones qui se chevauchent... Avant j'affichais les triangles par ordre de distance du barycentre à la caméra, sauf que ça ne marche que quand les triangles font tous la même taille et ne s'entrecoupent pas), et c'est vrai que c'était assez monstrueux...

En tout cas, merci :-)
User avatar
Manger
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 9
Joined: 10 Sep 2011, 10:09
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Graphes 3D et fonctions avancées ou programmées

Unread postby Levak » 10 Sep 2011, 17:49

Franchement, ça me touche que le version Lua soit plus intuitive et que je rencontre un peu plus de personnes qui s'en servent, ça me motivera pour continuer d'avantage ! (avant je faisais ça pour moi).

J'utilise effectivement cette méthode, dite Z-sorter. Le Lua permet en plus d'un traitement plus intuitif sur les tableaux, une dynamisation assurée au niveau de l'implémentation mémoire, ce qui réduit considérablement ce même temps de traitement, tout en restant souple au niveau du code.

En me parlant d'artefacts j'espère que tu ne parles pas de ceux qui sont montrés sur le screen, car pour ceux-là, je n'y peux rien, ce sont les fonctions optimisées drawRect() de l'API Lua de la TI-Nspire que j'utilise. Si je devais refaire ces fonctions, la fluidité en prendrait certainement un coup.

Cependant si c'est ce que je pense, oui, il y a certainement des choses à revoir au niveau de l'affichage restrictif (ne pas afficher les faces derrière nous), mais je pense que je toucherais à ça lorsque j'aurais implémenté une vraie caméra (pour l'instant ce ne sont que 3 coordonnées de rotation et de zoom, et j'envisage de rajouter le positionnement).

Concernant les déplacement, oui, ça "pourra" être jouable lorsque j'aurais implémenté cette caméra. Pour l'instant Haut/Bas agissent sur la rotation X et Droite/Gauche agissent sur Y. Rien n'agit pour l'instant sur Z. Donc je te remercie de m'avoir confirmé qu'il faut bien implémenter une rotation locale à une caméra, et non globale à une scène.
EDIT : Quoique, je viens de "penser" à de telles rotations, et ça risquerait d'être assez perturbant, non ? En fait, comme pour l'instant rien n'agit sur Z, on ne voit pas le problème pour les rotations sur X (Haut/Bas). Cependant, une rotation locale dépend de l'angle de vue. Donc je retire ce que j'ai dit, les rotations suivant l'angle précédent ne vont pas être agréable, en tout cas, je le pense. Sur Blender en tout cas, les touches 4, 6, 2, et 8 font exactement la même chose.

Encore merci pour tes retours, c'est des utilisateurs/testeurs comme ça dont un projet de cette taille a besoin ! =)
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: Graphes 3D et fonctions avancées ou programmées

Unread postby Manger » 10 Sep 2011, 18:52

De rien :-)

J'ai plus l'impression que Haut/bas agissent sur la rotation autour de la droite formée par l'horizontale de l'écran que sur la rotation autour de l'axe X, non ? Ah ! Je crois que je comprends : à chaque fois que je parle d'axe, je parle des axes qui sont affichés à l'écran, représentant la base du repère dans lequel est dessinée la surface, alors que tu devais parler d'un autre repère... Ou pas... Bref ; parler de ce genre de chose a de quoi rendre fou ;-)

(pour ma part, j'avais plutôt imaginé garder la caméra fixe à une certaine distance du graphe, genre en (-2*Xmin, 0, 0), avec éventuellement la possibilité de se rapprocher, et après la possibilité de faire tourner la surface selon les axes (0,1,0) et (0,0,1) passant par (0,0,0) en gardant la caméra fixe, mais d'un autre côté l'application de la Ti-nspire se comporte exactement comme la tienne, donc je pense qu'on peut dire que c'est moi qui ai une vision bizarre des choses ;-))

Pour les artefacts, je ne parlais pas de ce que l'on peut voir sur le screenshot (il n'y a rien de vraiment perturbant dessus), mais de ce que tu évoques : je dois avouer qu'après avoir tracé z=x+y, je ne savais plus trop ce qui se passait ; si effectivement on voit les faces qui sont derrières nous, ça explique beaucoup de choses :-)
User avatar
Manger
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 9
Joined: 10 Sep 2011, 10:09
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Graphes 3D et fonctions avancées ou programmées

Unread postby Levak » 10 Sep 2011, 19:48

Manger wrote:De rien :-)

J'ai plus l'impression que Haut/bas agissent sur la rotation autour de la droite formée par l'horizontale de l'écran que sur la rotation autour de l'axe X, non ? Ah ! Je crois que je comprends : à chaque fois que je parle d'axe, je parle des axes qui sont affichés à l'écran, représentant la base du repère dans lequel est dessinée la surface, alors que tu devais parler d'un autre repère... Ou pas... Bref ; parler de ce genre de chose a de quoi rendre fou ;-)



Je parle de l'axe 3D XoYoZ en repère main droite (si je me trompe pas). X sur le pouce, Y sur l'index, Z sur le majeur. Maintenant, pointe Z vers toi, et tu verras où est X. Tourne autour de X et tu comprendras ce que fait Haut/Bas. =)
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)


Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: No registered users and 8 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.
725 utilisateurs:
>697 invités
>19 membres
>9 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)