Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92 SC+
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Graph 35 à 100 >> Graphisme >> BetterFont
BetterFont
Version : Taille : 7660 octets Ajouté le : 2016-06-19 17:33 Modifié le : 2016-06-20 11:59
Auteur et posteur :
ZezombyeEn ligneRédacteurPoints: 1756 Défis: 13 Message
Planète Casio - Programme Casio de graphisme - BetterFont - zezombye - Calculatrices
Nombre de visites sur cette page : 6230
Score au progrank : 33
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
931 téléchargements | Soumettre un test


Description :

Pour les développeurs d'addins, je vous présente BetterFont, librairie/utilitaire qui vous permettra d'écrire du texte sans aucun problème

Avantages par rapport au PrintMini :

- Gestion automatique de retour à la ligne
- Gestion du \n
- La police est bien plus facile à lire
- Vous pouvez mettre jusqu'à ~248 caractères au total dans la police (qui est totalement customisable)
- Pas besoin de mettre la couleur

Installation
Installation
Ajoutez fonts.c dans votre projet, et #include "fonts.h" dans votre main. Comme MonochromeLib.

À noter que cet utilitaire nécessite MonochromeLib. Si vous ne voulez ou pouvez pas l'installer, il fonctionnera quand même (mais il sera plus lent), il suffit de remplacer ML_pixel(x+i%(charlength), y+i/charlength, 1); par BDisp_Setpoint_VRAM(x+i%(charlength), y+i/charlength, 1); .

Pour l'utiliser, il suffit d'utiliser la fonction dispStr(unsigned char* str, int x, int y) .

Pour cette raison vous pouvez également, si besoin, rajouter un argument int color à la fonction et faire ML_pixel(x+i%(charlength), y+i/charlength, color); . Si color=0 ça imprimera en blanc, 1 = noir, 2 = inversé.


Comment rajouter des caractères
Comment rajouter des caractères
Cet utilitaire permet aussi de rajouter des caractères. Pour cet exemple nous allons rajouter le caractère Σ.

On le représente en binaire :
00000
11111
01000
00100
01000
11111
00000

Il est à noter que la hauteur est de 7, il faut donc au total 7 lignes. La ligne du dessus n'est ici pas obligatoire (vu que c'est des 0 à gauche) mais si vous ne mettez pas la ligne tout en bas, votre caractère sera décalé d'un pixel.

Ensuite vous allez ici : http://www.binaryhexconverter.com/binary-to-decimal-converter et puis vous copiez collez le nombre en binaire ici (ou alors vous l'écrivez directement dans le convertisseur). Ce convertisseur est sympa parce qu'il enlève automatiquement les nouvelles lignes, il convertira donc le bon nombre.

Le convertisseur nous donne 1048716256. Nous allons l'ajouter dans la police :


Ensuite vous allez dans l'array des longueurs et vous mettez 5 dans l'emplacement réservé à votre caractère.

Pour afficher ce caractère (qui a dans cet exemple la valeur 0x96) il faut concaténer des strings. Exemple :
char* str = "Le caract""\x90""re pour la somme est ""\x96"" .";
0x90 est le caractère 'è'.

Le maximum est actuellement 64 pixels, il est donc possible avec une hauteur de 7 pixels d'aller jusqu'à 9 pixels de longueur. Dans un autre exemple nous allons reprendre le caractère Σ mais l'adapter pour qu'il soit de 7 pixels de hauteur au lieu de 5 (même si ça fait moche, mais c'est pour l'exemple).

Vous aurez remarqué que dans le fonts.c un caractère est représenté par un array de 2 longs, un long pour chaque 32 pixels. Voici comment découper un caractère qui tient sur plus de 32 pixels.

Notre somme sera :
11111
10001
01000
00100
01000
10001
11111


On prend les 32 derniers bits (ici en gras) et on les isole du reste. On obtient 3800179263, que vous mettez dans le deuxième long.

Ensuite on prend le reste. 111 en binaire donne 7, donc vous mettez 7 dans le premier long.


Voilà, j'espère que cet utilitaire vous sera utile (en même temps ça sert à ça un utilitaire ), surtout pour les cours (Maths TS pourrait par exemple l'utiliser, selon moi le cours serait plus facile à lire )


Commentaires :

Pages: Précédente | 1, 2

ZezombyeEn ligneRédacteurPoints: 1756 Défis: 13 Message
Posté le 28-03-2018 à 16:20 | #
Cette lib ne respecte pas l'encodage de casio, en fait j'ai juste mis des caractères après 0x7F
DarkjuraHors ligneMembrePoints: 389 Défis: 0 Message
Posté le 06-04-2021 à 12:09 | #
Je ne parviens pas à afficher les accents (é)
Mon .c est codé en UTF-8, si j'en crois NotePad++, et il y a un trou dans le mot à la place du 'é' sur l'écran de la calto...
Que faire ? Changer d'encodage (à propos, ça consiste en quoi exactement ?) ou la façon de l'écrire dans le code ?
dispStr("Second degré",0,0);
LephenixnoirEn ligneAdministrateurPoints: 22762 Défis: 149 Message
Posté le 06-04-2021 à 12:14 | #
À voir le code tu peux remplacer ton "é" par "\x89" et ça devrait aller. \x est un caractère d'échappement qui produit un octet en regardant les caractères suivants (ici l'octet 0x89).

Attention, \x va "manger" autant de caractères qu'il peut, donc si après ton "é" tu veux mettre un autre chiffre ou une lettre entre a et f, le plus simple est de fermer et rouvrir les guillemets.

"Exemple \x89" "2 test"
// -> "Exemple é2 test"

Pour les encodages, tu peux regarder dans la sous-section sur le texte dans le TDM 18 (il faut scroller un peu plus bas que la section que j'ai liée).
DarkjuraHors ligneMembrePoints: 389 Défis: 0 Message
Posté le 06-04-2021 à 12:20 | #
Ok pour les encodages et la chose fonctionne.
Merci bien !
LephenixnoirEn ligneAdministrateurPoints: 22762 Défis: 149 Message
Posté le 06-04-2021 à 12:24 | #
La valeur c'est la position dans le grand tableau de glyphes, où le caractère se situe. Par chance, si tu regardes le code source entre les lignes 125 et 150, Zezombye a noté ça pour tous les caractères non-ASCII. Par exemple tu vois "é 0x89" ligne 135.
DarkjuraHors ligneMembrePoints: 389 Défis: 0 Message
Posté le 06-04-2021 à 12:26 | #
Ok, j'ai vu. Re-merci

Pages: Précédente | 1, 2

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 50 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