Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Rendu mathématique 2D avec syntaxe TeX
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Rendu mathématique 2D avec syntaxe TeX

Posté le 14/05/2015 15:11

Voici une bibliothèque que j'avais écrite il y a longtemps pour WebCalc et que je reprends au propre. Elle permet d'afficher des formules mathématiques en 2D (parfois appelé pretty printing) et de les produire à partir de code TeX.

\frac{x^7 \left[X,Y\right] + 3\left|\frac{A}{B}\right>}
     {\left\{\frac{a_k+b_k}{k!}\right\}^5}
+ \int_a^b \frac{\left(b-t\right)^{n+1}}{n!} dt
+ \left(\begin{matrix} \frac{1}{2} & 5 \\ -1 & a+b \end{matrix}\right)


Elle peut s'utiliser avec fxlib, gint, ou n'importe quel système qui fournit des opérations de dessins élémentaires comme tracer une ligne ou du texte.

Vous pouvez télécharger la bibliothèque et trouver des détails plus techniques sur le dépôt :

Dépôt du programme sur la forge Gitea

Il y avait une autre version assez sale de cette bibliothèque entre 2014 et 2015, et je supporte toutes ses fonctions sauf les racines carrées et les caractères spéciaux. Ça arrive !

Liste des éléments supportés :

^exposant
_indice

\frac{numérateur}{dénominateur}
\vec{vecteur}

\sum_{début}^{fin}
\prod_{début}^{fin}
\int_{inf}^{sup}
\lim_{limite}

\left(  \right)
\left[  \right]
\left\{ \right\}
\left|  \right|
\left.  \right.

\begin{matrix} ... & ... \\ ... & ... \end{matrix}



Fichier joint


1, 2, 3, 4 Suivante
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 14/05/2015 15:51 | #


Une petite liste d'idées à ajouter :
– Intégrales (si possible les doubles et triples, pour les cours de SI)
– Exposants
– Indices
– Produits (PI de début à fin de expression)

Et d'autres idées viendront sans doute plus tard.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 15:53 | #


Dark storm a écrit :
– Intégrales (si possible les doubles et triples, pour les cours de SI)

Oui, c'est encore le plus important, après les vecteurs et quelques symboles

Dark storm a écrit :
– Exposants
– Indices

Facile

Dark storm a écrit :
– Produits (PI de début à fin de expression)

Ça sera plutôt « produit de début à fin », et ensuite tu colles manuellement l'expression à côté

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 14/05/2015 16:00 | #


Ben faut que ce soit exactement le même fonctionnement que les sommes, mais tu gère comme tu le sens.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 14/05/2015 17:29 | #


Ca serait sympa si tu pouvais gérer la différence entre \sum\limits et \sum, \int\limits et \int et \prod\limits et \prod
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 17:30 | #


Cartix a écrit :
Ca serait sympa si tu pouvais gérer la différence entre \sum\limits et \sum, \int\limits et \int et \prod\limits et \prod

Ce serait sympa si tu pouvais me l'expliquer ? oO
Désolé, je ne connais pas assez le fonctionnement de TeX pour connaître la subtilité
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 14/05/2015 17:34 | #


Dans un certain envirronement, si tu mets juste \sum_{i=1}^{3}, tu auras les limits mise à droite du symbole somme, tandis qu'en mettant \sum\limits_{i=1}^{3}, tu auras les limites en haut et en bas du symbole somme.

Le fait d'écrire sans le \limits permet, par exemple, d'obtenir un résultat plus esthétique dans le cas où on ne stipule que l'indice, genre \sum_{i}, ou \int_{V}
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 17:37 | #


Ah, je vois. En fait, je ne pense pas qu'une manière simple de gérer le moteur permette de fonctionner comme ces éléments. ><

En gros, j'ai juste une fonction somme qui met les arguments en haut et en bas avec la syntaxe \sum{i=1}{3} (c'est très simplifié hein, je n'ai pas l'ambition d'écrire un truc aussi complet que le moteur originel). Par contre, il devrait être possible d'écrire \sum_{i=3} pour obtenir le second résultat
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 14/05/2015 17:39 | #


Ah oui, c'est bien aussi
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 17:46 | #


Au fait, j'avais quelques problèmes au niveau de la structure des données, que j'avais organisées en nœuds, de sorte que chacun d'eux ait des frères (allez, des sœurs aussi), et des enfants.
Sauf que ça posait problème dans le calcul des « expressions », c'est-à-dire des éléments composés de plusieurs autres simples mis les uns à la suite des autres. Par exemple, « 2\frac{a}{b} » est une expression dont les éléments simples sont « 2 » et « \frac{a}{b} ».

Du coup, je vais modifier un peu ça : je vais récupérer des « expressions », composées de plusieurs « formules » (nodes dans le code), dont les arguments sont eux-mêmes des « expressions ».
Ça va me permettre d'économiser de la mémoire pour une perte de possibilités minimale voire très probablement nulle.

Ajouté le 14/05/2015 à 18:10 :
C'est bon, j'ai modifié cette structure. Ça me simplifie un bon coup le concept, du coup, ça va encore améliorer la performance et la modularité \o/

Edit : j'ai aussi mis à jour le post principal.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 14/05/2015 19:44 | #


Très belles tes fractions et tes racines carrée C'est particulièrement propre !!
Et chose super importante, les espace entre le "n" et le "(n+1)" ainsi que le signe " * " ne sont plus là !!


@Lephé: T'es aussi intéressé par les eActs de physique/chimie ?

JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 20:57 | #


Scientifix a écrit :
Très belles tes fractions et tes racines carrée C'est particulièrement propre !!

Merci J'aime beaucoup cet adjectif, je crois

Scientifix a écrit :
Et chose super importante, les espace entre le "n" et le "(n+1)" ainsi que le signe " * " ne sont plus là !!

Mais je me tue à te le dire, c'est juste que j'ai remplacé le texte « n * (n+1) » dans la formule par « n(n+1) », il n'y a rien de magique xD

Scientifix a écrit :
@Lephé: T'es aussi intéressé par les eActs de physique/chimie ?

Tu ne veux les publier de ton côté ?
Bien sûr, ça m'intéresse, mais je me demande quand même si ça ne te serait pas plus profitable.

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 14/05/2015 21:04 | #


Pour le deuxième quote c'est vraiment con de ma part j'ai pas fait gaffe ...
Sinon pour les eActs je verrai mais je ne sais pas encore si je les publierai tel quel, mais je te les passes volontiers
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 21:11 | #


J'aurais une première question sur le design des racines



Vous préférez la barre inclinée ou droite ? Et avec ou sans patte en haut à droite ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 14/05/2015 21:26 | #


Barre droite avec patte !! (la première en gros)
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 14/05/2015 21:56 | #


Idem, la première : je la préfère car beaucoup plus explicite dans un produit (visuellement parlant)
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 14/05/2015 21:57 | #


aussi la première : plus sympa et on voit la fin de la racine
In Arch, I trust ! And you ?
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 14/05/2015 22:00 | #


Je dirais la première avec un pixel de moins sur la fin
1337
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 14/05/2015 22:33 | #


Je préfère la barre droite.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Breizh_craft En ligne Modérateur Points: 1157 Défis: 7 Message

Citer : Posté le 14/05/2015 22:44 | #


Moi aussi la première.
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 14/05/2015 22:54 | #


Ok, je garde la première alors !

Ajouté le 15/05/2015 à 09:57 :
J'ai ajouté les produits et les vecteurs


Du coup, j'ai encore besoin de vous ^^, pour les intégrales cette fois

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
1, 2, 3, 4 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 90 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd