
[W.I.P] Make3D pour TI-Nspire
Re: [W.I.P] Make3D pour Nspire CAS
Oui, c'est une bonne solution, et c'est plus pratique si le programme le fait automatiquement que si on doit le faire à la main 

-
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 207
- Joined: 26 Jan 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Polytechnique
Re: [W.I.P] Make3D pour Nspire CAS
Oui, c'est une bonne solution, et c'est plus pratique si le programme le fait automatiquement que si on doit le faire à la main
Je me suis rappelé qu'il y aurait peut être des conflits entre le mesh actif "v.m_co" et le mesh temporaire que je fais circuler dans tout make3D "point3D" sans oublier le nouveau système de preview. Faut-il afficher tous les objets dans le preview ? Cela impliquerait de recoder join_mesh afin qu'il soit pris comme fonction et non comme programme.
___________________
Bon, bah c'est pas tout, mais u.face et a.add_face étaient bourrés de bugs. Tout est à présent dans l'ordre. J'ai par ailleurs rendu extensible la question des faces. On est plus contraint d'avoir soit une matrice n*4 ou n*3, mais bien n*p avec p le nombre de colonnes et n de lignes.
Voici un aperçu d'une face unique reliant les 20 points d'un cercle dans l'espace :

La partie du code que s'occupe de rendre une face avec une infinité de points et pas seulement des quadrilatères ou des triangles :

Bien sûr généré par l'algo de traçage de face qui désormais peut filtrer les id qui ne lui conviennent pas sans pour autant arrêter le prog :

remarque : l'algo crée automatiquement une matrice de face à la bonne taille si aucune matrice de face n'est détectée, et make3D ne trace aucune ligne.
Et quelques délires avec la troncature de la face crée pour qu'elle rentre dans la matrice déjà initiée :

-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
Bon, encore du nouveau (je n'arrête pas !)
- u.join_mat(mat1, mat2) -- renvoie la fusion de deux matrices
- u.get_column(mat, num ou liste) -- renvoie la ou les colonnes d'une matrice
(je rappelle que toutes les fonctions/programmes préfixées par u. n'ont pas à être utilisée par l'utilisateur. C'est le programme qui s'en sert.)
- m.update_objects() -- Actualise la liste des objets disponible dans l'intégralité du classeur et crée des variables portant leur nom et ayant comme valeur, leur nom en chaine de caractère.
Toutes ces variables crées appartiennent au nouveau groupe 'd.' Par exemple :


d.cube = "cube" et "cube" renvoie à cube.point /.face
Donc il suffit de taper "d." pour avoir la liste COMPLÈTE de tous les objets sans avoir à faire l'effort de les rechercher dans le menu variables.
- b.select_mesh(string) -- sélectionne l'objet indiqué en chaine de caractère.
Dans le mode preview, l'objet actif est en noir, les autres en gris. Cela implique que la variable v.m_co historiquement une chaine de caractère et contenant le nom de l'objet actif à rendre, devient une liste de chaines contenant tous les objets à rendre. Par ailleurs, j'ai adapté m.make3D() afin qu'il puisse recevoir une liste de chaine de caractère et l'exploiter comme unique objet au lieu de joindre manuellement les objets avant. Ainsi, on peut mettre m.make3D(v.m_co) rend la scène complète que le mode preview affiche.

- u.join_mat(mat1, mat2) -- renvoie la fusion de deux matrices
- u.get_column(mat, num ou liste) -- renvoie la ou les colonnes d'une matrice
(je rappelle que toutes les fonctions/programmes préfixées par u. n'ont pas à être utilisée par l'utilisateur. C'est le programme qui s'en sert.)
- m.update_objects() -- Actualise la liste des objets disponible dans l'intégralité du classeur et crée des variables portant leur nom et ayant comme valeur, leur nom en chaine de caractère.
Toutes ces variables crées appartiennent au nouveau groupe 'd.' Par exemple :


d.cube = "cube" et "cube" renvoie à cube.point /.face
Donc il suffit de taper "d." pour avoir la liste COMPLÈTE de tous les objets sans avoir à faire l'effort de les rechercher dans le menu variables.
- b.select_mesh(string) -- sélectionne l'objet indiqué en chaine de caractère.
Dans le mode preview, l'objet actif est en noir, les autres en gris. Cela implique que la variable v.m_co historiquement une chaine de caractère et contenant le nom de l'objet actif à rendre, devient une liste de chaines contenant tous les objets à rendre. Par ailleurs, j'ai adapté m.make3D() afin qu'il puisse recevoir une liste de chaine de caractère et l'exploiter comme unique objet au lieu de joindre manuellement les objets avant. Ainsi, on peut mettre m.make3D(v.m_co) rend la scène complète que le mode preview affiche.

-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
Fini les TPs, on avance un ptit peu, mais j'aurais pas fini pour le BAC je pense, j'essaie avant tout de rendre le programme imbuggable, mais c'est pas facile de simuler des cas auxquels on aurait pas pensé.
Donc j'ai rajouté quelques vérifications concernant le multi-render, lorsqu'on donne une liste d'objet à manger à make3D! ce qui permet déjà d'éviter de se poser des questions d'où vient le problème.

Puis j'ai crée m.import_object(chaine ou liste)
Encore une fois, les deux choix sont possibles, chaine ou liste afin d'aller plus vite. Si des objets n'existent pas dans la liste, l'import se poursuit quant même, mais saute des étapes et prévient l'utilisateur. J'appelle "importer" le fait d'incrémenter la liste v.m_co avec les objets désirés et contrôlés.



Sinon, ce n'est pas automatique mais il est préférable de faire un m.update_object() après l'import, ne serait-ce que pour actualiser la vue preview mais aussi pour retirer les doublons objets, nouvelle fonction de m.update_object().
Enfin, je ne sais plus si je l'avais déjà mentionné, mais j'ai redonné un look au tableur avec les nouvelles disponibilités de l'OS 2.0



Donc j'ai rajouté quelques vérifications concernant le multi-render, lorsqu'on donne une liste d'objet à manger à make3D! ce qui permet déjà d'éviter de se poser des questions d'où vient le problème.

Puis j'ai crée m.import_object(chaine ou liste)
Encore une fois, les deux choix sont possibles, chaine ou liste afin d'aller plus vite. Si des objets n'existent pas dans la liste, l'import se poursuit quant même, mais saute des étapes et prévient l'utilisateur. J'appelle "importer" le fait d'incrémenter la liste v.m_co avec les objets désirés et contrôlés.



Sinon, ce n'est pas automatique mais il est préférable de faire un m.update_object() après l'import, ne serait-ce que pour actualiser la vue preview mais aussi pour retirer les doublons objets, nouvelle fonction de m.update_object().
Enfin, je ne sais plus si je l'avais déjà mentionné, mais j'ai redonné un look au tableur avec les nouvelles disponibilités de l'OS 2.0



-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42528
- Images: 17406
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
-
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 207
- Joined: 26 Jan 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Polytechnique
Re: [W.I.P] Make3D pour Nspire CAS

Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6875
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: [W.I.P] Make3D pour Nspire CAS
JayTe wrote:Excellent![]()
Et le fichier?![]()
Voilà Voilà, j'ai du faire beaucoup de correctifs pour nettoyer mes cochonneries laissées pour les multiples tests

Make3D_v9.3
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: [W.I.P] Make3D pour Nspire CAS
Levak wrote:JayTe wrote:Excellent![]()
Et le fichier?![]()
Voilà Voilà, j'ai du faire beaucoup de correctifs pour nettoyer mes cochonneries laissées pour les multiples tests![]()
Make3D_v9.3
Pourquoi tu ne mets pas sur le portail ?

-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42528
- Images: 17406
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: [W.I.P] Make3D pour Nspire CAS
critor2000 wrote:Pourquoi tu ne mets pas sur le portail ?![]()
Elle est selon moi pas encore prête à être donnée entre des mains novice sur le produit.
La doc est à recréer entièrement, car tout à changé et de nombreuses choses sont arrivées. En postant comme je fais à chaque nouvelle petite chose, cela me permet de garder en mémoire les choses importantes que j'ai dit, les remarques d'autrui me permettant d'approfondir plus... tout en sachant que même en étant l'auteur du produit, on oublie très vite certaines choses "Pourquoi J'ai fait ça ???".
Donc si vous vous sentez près à tester comme le fait JayTe depuis pas mal de temps où il me donne de très bons retours faisant avancer la chose, ne vous stoppez pas ! Make3D! est bien trop complexe pour n'être gardé qu'entre mes mains.

Aillant été imbibé dans l'univers de Blender, j'ai beaucoup tendance à en copier le principe : des raccourcis rapide d'accès, de multiples options, un moteur extensible de par lui même et personnalisable par l'utilisateur (librairies). Le problème c'est que j'ai du mal à me mettre à l'idée que Make3D s'exécute sur une Nspire, et pas un ordi

Donc j'essaie d'avoir un produit complet et le plus proche de l'utilisateur en même temps. Mon autre problème c'est qu'en assimilant le principe de Blender dans Make3D!, j'en fait son clone. Or Blender évolue tous les jours. C'est ce qui se passe pour Make3D! aussi.
J'ai du mal à finaliser make3D! également par le fait que j'ai un désir incertain : rendre Make3D! utilisable et utile pour le BAC. Pour l'instant seulement la moitié de ces deux objectifs est atteint et seulement pour des personnes ayant la "conscience" de leur Nspire, et pas considérer la Nspire comme une calculette, mais bien comme un outil. C'est en forgeant qu'on devient forgeron. C'est en s'inspirant qu'on apprécie sa Nspire

Voilà un peu le topo.
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests