Seuls les membres ayant 30 points peuvent parler sur le chat.
Gestion du compte
Calculatrices
Graph 35 à 100 (CFX)
Graph 25/25+ (Pro) (fx-7400)
Graph 35+USB/75/85/95 (SD)
Graph 100/100+ (AFX)
ClassPad 300/330
Fx-CG 10/20
Fx-CP 400
Graph 90+E

Retour aux miniatures
Tri avancé
Liste des programmes
Nom Date
Sprite Recon
Tab Graphique
Dessin auto
PixelArt Graph
BetterFont
Map Generator
Draw tool
BetterInput
CasioString
Drawstat facile
Codage
Pixel Art
Placer le text
Zoom2
Defgraph
Dessiner
Imager
Molécule
2mn page
PaintGold
Pages: 1,2,3,4 >>

¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Graphs 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: 1625 Défis: 12 Message
Planète Casio - Programme Casio de graphisme - BetterFont - zezombye - Calculatrices
Nombre de visites sur cette page : 3033
Score au progrank : 30
Pas encore de note !

Vous devez être inscrit(e) et avoir 20 points ou plus pour noter.
551 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: 1, 2 | Suivante

LilougueHors ligneMembrePoints: 276 Défis: 5 Message
Posté le 20-06-2016 à 17:46 | #
En effet ça pourrait rendre la lecture bien plus agréable sur MathsTS, je m'y intéresserai après le bac
LephenixnoirHors ligneAdministrateurPoints: 15719 Défis: 136 Message
Posté le 21-06-2016 à 13:39 | #
Ah, pas mal. Content de voir que ma police sert. Qu'en est-il du rapport de puissance ?

Petite note pour les linuxiens, gint gère les polices de manière, disons... plus simple (voyez les notes sur le fxSDK).
Ça devrait être plus puissant aussi...
HackcellEn ligneMembrePoints: 1140 Défis: 6 Message
Posté le 21-06-2016 à 15:46 | #
Petit coup de pub plutôt discret
EltoredoHors ligneModérateurPoints: 4291 Défis: 35 Message
Posté le 21-06-2016 à 16:10 | #
Au début, j'ai cru que c'était un Star Wars

Sinon, en effet, très bien trouvé, je l'utiliserai sûrement dans mes programmes, même si j'aime bien le PrintMini \o/
LimachiHors ligneYoutuberPoints: 2798 Défis: 67 Message
Posté le 28-03-2018 à 12:12 | #
je viens de la lire la meilleure blague du monde (le prend pas mal, j'explique tout de suite après)
},{0,        201744 //for some reason, when the dispStr() function seeks the character at 0x90 and above
},{0,        201744 //it actually seeks it 6 characters after. there is absolutely no logical way I can think of
},{0,        201744 //that causes this bug. 0x90 (144) is not a significant number. neither is 6.
},{0,        201744 //so rather than spending 4532 hours debugging, the fix is simple:
},{0,        201744 //just put 6 characters between 0x89 and 0x90.

Si je comprend bien ce que tu as écris, tu te demande pourquoi entre 89 et 90 il y a un pas de 6 caractères. Si on prend le chiffrage hexadécimal, entre 0x89 (137) et 0x90 (144) il y a bien [138, 139, 140, 141, 142, 143] 6 chiffres.
ZezombyeEn ligneRédacteurPoints: 1625 Défis: 12 Message
Posté le 28-03-2018 à 12:14 | #
Ha tiens, j'avais pas corrigé ça. Mais ouais, ça m'a pris quelque temps avant de trouver l'erreur
LimachiHors ligneYoutuberPoints: 2798 Défis: 67 Message
Posté le 28-03-2018 à 12:23 | #
Je pense que je vais me faire une petite lib qui gère l'utf8, je suis pas fan de devoir concat des chaines pour des carac accentués
ZezombyeEn ligneRédacteurPoints: 1625 Défis: 12 Message
Posté le 28-03-2018 à 12:46 | #
Je pense que ce serait plus facile de sauvegarder ton fichier en latin-1 ou ANSI et d'assigner les caractères accentués en respectant le latin-1.
LimachiHors ligneYoutuberPoints: 2798 Défis: 67 Message
Posté le 28-03-2018 à 12:53 | #
moueff, c'est sans doute le plus simple, mais pas forcément le plus fun
LephenixnoirHors ligneAdministrateurPoints: 15719 Défis: 136 Message
Posté le 28-03-2018 à 13:00 | #
Le truc c'est que l'encodage de Casio n'est pas non plus Latin-1, right? Au mieux sur quelques caractères...

Pages: 1, 2 | Suivante

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