8
votes

Calculez la taille de la police maximale qui convient à un rect?

Je tente de trouver la taille maximale de la police qui correspondra à un rect donné pour une chaîne donnée. L'objectif de l'algorithme est de remplir le plus possible le record possible avec aussi grande de police que possible. Mon approche - qui est modifiée d'une personne que j'ai trouvée en ligne - fait un travail équitable, mais cela ne remplit souvent pas tout le recttacle. J'aimerais voir une certaine collaboration sur la manière d'améliorer cet algorithme afin que tout le monde puisse en bénéficier: xxx


1 commentaires

Lorsque vous dites "remplir le recto entier", vous voulez seulement dire sur l'horizontale?


3 Réponses :


5
votes

Utilisez la méthode suivante pour calculer la police qui peut s'adapter, pour un record et une chaîne donnés.

Vous pouvez modifier la police sur celle que vous avez besoin. De plus, si nécessaire, vous pouvez ajouter une hauteur de police par défaut;

méthode est explicite. xxx


0 commentaires

1
votes

Il n'est pas nécessaire de perdre du temps à faire des boucles. Tout d'abord, mesurez la largeur de texte et la hauteur sur les paramètres POINT POINT MAX et MIN. En fonction de la qualité, de la largeur ou de la hauteur plus restrictive, utilisez les mathématiques suivantes:

Si la largeur est plus restrictive (c.-à-d. MaxPointWidth / recwidth> MaxPointHeight / rectue Code>) Utilisez: P>

pointSize = minPointSize + rectHeight * [(maxPointSize - minPointSize) / (maxPointHeight - minPointHeight)]


0 commentaires

0
votes

Il peut être impossible de remplir complètement un rectangle.

Dites à une certaine taille de police Vous avez deux lignes de texte, les deux remplissant l'écran horizontalement, mais verticalement, vous n'avez presque pas trois lignes d'espace.

Si vous augmentez la taille de la police, un peu de minuscule, les lignes ne correspondent plus, alors vous avez besoin de trois lignes, mais trois lignes ne correspondent pas verticalement.

Vous n'avez donc pas d'autre choix que de vivre avec l'écart vertical.


0 commentaires