Java - ¿Cómo dar un salto de línea cuando llegue al limite de una ventana?

 
Vista:
sin imagen de perfil
Val: 98
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

¿Cómo dar un salto de línea cuando llegue al limite de una ventana?

Publicado por Francisco Emmanuel (60 intervenciones) el 18/11/2020 01:33:06
Estoy trabajando en processing y tengo que imprimir lo siguiente:

Impresion

Lo que quiero hacer es que cuando se llegue al limite de la ventana de un salto de línea y escriba la letra justo de bajo de la primer P logre que diera el salto de línea pero escribe la letra al final y no al inicio. Espero me puedan ayudar dejo el pedazo de código donde estoy intentando hace esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void letrero(int px,int py, String cadena)
{
   for (int i=0; i<cadena.length(); i++)
   {
 
       if(sumatoria >=470 ){
         py = py+30;
         px = 10;
      }
 
        dibujaletra(px+20*i*escala, py, alfabeto[ int(cadena.charAt(i)) ] );
        sumatoria = px+20*i*escala;
        println(sumatoria);
   }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Cómo dar un salto de línea cuando llegue al limite de una ventana?

Publicado por Rodrigo (623 intervenciones) el 18/11/2020 04:01:24
Tengo algunas ideas para que puedas probar:

px no se modifica nunca en el ciclo, excepto en el if que llega a 10 y ahi se queda.

Lo que ahora controla la posicion de la letra en el eje x no es posx sino i en esta expresion:

px+20*i*escala

En vez de hacer esta multiplicacion usa solo px ahi
osea cambia
1
dibujaletra(px+20*i*escala, py, alfabeto[ int(cadena.charAt(i)) ] );
por
1
dibujaletra(px, py, alfabeto[ int(cadena.charAt(i)) ] );
y luego justo despues de usar px haz:

px += 20*escala;

y con eso va a tener mas sentido el llevar a px a 10 nuevamente en algun momento del ciclo.

Cambia el if de la linea 6 y no uses "sumatoria", usa px directamente.

1
2
3
4
if( px > ... ) {
  ...
  px = 10;
}

Puedes completamente borrar la variable sumatoria.

Algo asi deberia cambiar el resultado que obtienes.

Despues que todo funcione, usa constantes:
LIMITE_IZQUIERDO, LIMITE_DERECHO, algo asi, para que puedas cambiar facilmente y para que sea muy evidente lo que estas haciendo cada vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 98
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

¿Cómo dar un salto de línea cuando llegue al limite de una ventana?

Publicado por Francisco Emmanuel (60 intervenciones) el 18/11/2020 04:17:48
Rodrigo Muchas, en verdad muchas gracias me funciono a la perfección en verdad que ya estaba desesperado, era lo ultimo que me faltaba para terminar y nuevamente muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar