Exibir caracteres em uma grade quadrada?

Exibir caracteres em uma grade quadrada?

Como posso exibir caracteres como se fossem quadrados no vim? Os caracteres em si não precisam ser quadrados, mas se você desenhar uma grade passando por todos os pontos centrais dos caracteres, ela deverá formar uma grade quadrada.

Eu gostaria de fazer isso porque estou projetando um layout de fortaleza paraFortaleza dos Anões. O jogo é definido em uma grade quadrada/cuba.

Responder1

No Windows, existem algumas fontes quadradas monoespaçadas em conhost.exe (que é o terminal padrão usado pelo cmd e pelo PowerShell) por padrão, como a fonte 8x8, mas nunca ouvi falar de uma no Linux. Fiz uma pesquisa e encontrei oquadradofonte que foramfeito exatamente para o seu propósito

Square é uma fonte TTF destinada a jogos roguelike

Os jogos Roguelike consistem inteiramente em texto emcélulas da grade, mas o problema é quea maioria das fontes monoespaçadas são muito mais altas do que largas, o que significa que os roguelikes têm células não quadradas ou têm células quadradas e os personagens não ocupam a caixa inteira, nenhum dos quais parece esteticamente agradável.

Square foi projetado para fazer com que os personagens preencham um espaço quadrado da maneira mais uniforme e uniforme possível.É inspirado na forma como os caracteres japoneses sempre cabem uniformemente em uma caixa, independentemente do design. Ele dispensa os ascendentes/descendentes típicos em caracteres minúsculos e, em vez disso, faz com que os caracteres minúsculos pareçam uma versão mais leve dos caracteres maiúsculos.

Fonte quadrada

Duplicatas entre sites:

Também encontrei muitas outras fontes na mesma categoria, embora não tenha tido a oportunidade de testá-las.

exemplo de fontes quadradas


No entanto, se os seus textos se limitam a umpequeno conjunto de caracteres(especificamente ASCII 21 a 7E mais alguns caracteres do Leste Asiático), então você pode simplesmente usarformulário de largura totaldiretamente sem a necessidade de outra fonte

Abaixo está um pequeno script de shell para fazer a conversão de meia largura para largura total. A string a ser convertida é lida na entrada padrão

halfwidth='!"#$%&'\''()*+,-.\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬¯¦¥₩ '
fullwidth='!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅⦆¢£¬ ̄¦¥₩ '
sed -e "y/$halfwidth/$fullwidth/"

Exemplo

$ gato quadrado.txt
0123456789
1-quadrado 8
2####texto7
3$$$$$$$$6
4@@@@@@@@5
5(QUADRADO)4
6~~~TEXTO 3
7>>>2
8////\\\\1
9876543210

$ gato quadrado.txt | sh largura total.sh
0123456789
1-square 8
2####text7
3$$$$$$$$6
4@@@@@@@@5
5(SQUARE)4
6~~~TEXT 3
7<<<<>>>>2
8////\\\\1
9876543210

O resultado pode não ser quadrados perfeitos em muitos casos devido à fonte, então você ainda pode precisar verificar se há uma fonte com caracteres quadrados de largura total em seu sistema se a proporção não atender aos seus requisitos

Responder2

Crie uma fonte quadrada monoespaçada do Courier usando seu editor de fontes favorito. Use isso no seu Terminal.

Se você não tem paciência para editar fontes e tem carisma (ou algo assim), você pode fazeresseem vez de.

Os intertubos sugeriramessepara mim, mas talvez não seja realmente quadrado.

Responder3

Eu estava procurando uma fonte para usar com ogerador de código QR python. Parece que esta biblioteca assume uma proporção precisa de caracteres entre altura e largura de 8:7, então as fontes quadradas acima produziram um código QR mais largo do que alto. No meu Mac, a fonte Andale Mono com tamanho de 14 ou 28 pontos produz códigos QR perfeitamente quadrados. NoTermojanela mostrada abaixo, por exemplo, o código QR é exatamente 168:168.

insira a descrição da imagem aqui

informação relacionada