Cita de: bash en 9 Abril 2018, 23:16 PM
... me gustaria hacer es que esa matrix se le asignaran las columnas y las filas por la cantidad de caracteres especificos dependiendo del tamano de la fuente( se puede omitir el espacio en letras)...
Pues nada, es sencillo, con un cálculo podrías hacer eso.
numDeLetras
numPixelPorLetra
anchoPantallaEnPixels
maxLetrasEnPantalla=anchoPantallaEnPixels/numPixelPorLetra
numFilas=Redondea(numDeLetras/maxLetrasEnPantalla)+1
El problema que puede surgir y que complicaría la cosa es cuando se trabaja con fuentes que no mantienen el mismo ancho. Entonces requeriría, una función que lea desde un bucle letra por letra y vaya tomando los pixels de cada letra o espacio y una vez superado el ancho especificado en pixels incrementara la fila y pusiera el contador a cero y repitiera el proceso.
Si bien quisieramos que las palabras no quedaran cortadas tendríamos que guardar siempre la posición del último espacio encontrado en el conteo de pixels citado antes, letra por letra, y de llegar al ancho especificado cortar la cadena desde el último espacio y comenzar a contear desde ese último espacio y desde ahí comenzaría la siguiente fila.
Así como mejora se podría implementar en el método anterior, si quieres complicarlo aún más, es una vez creada la fila con sus caracteres incrementar los espacios entre palabras de forma equitativa con los pixeles sobrantes que no llegaron hasta el límite del ancho para que el texto no quede alineado a la izquierda o derecha y aproveche todo el ancho, o, simplemente usar esos pixeles para poner un margen automático al comienzo y final de la línea para dejar el texto centrado.
Espero que mis sugerencias te sirvan y suerte con lo que traes entre mano,
un saludo.