# Line() y for. Ayuda

**URL:** <https://discourse.processing.org/t/line-y-for-ayuda/22137>\
**Category:** Español\
**Created:** [June 24, 2020, 7:57pm UTC](https://discourse.processing.org/t/line-y-for-ayuda/22137 "2020-06-24T19:57:22Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![FireInTheSky](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/fireinthesky/32/9663_2.png) [@FireInTheSky](https://discourse.processing.org/u/FireInTheSky)\
**Post date:** [June 24, 2020, 7:57pm UTC](https://discourse.processing.org/t/line-y-for-ayuda/22137/1 "2020-06-24T19:57:22Z")

</div>

Hola de nuevo.  
Estoy intentando hacer estas lineas

 ![22](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/a/a44b88b5ab90dac668fc58750693d56a4d9c68c3.jpeg)

Pero lo único que me salió fue así

 ![11](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/5/561501fca664cfcbfcf162c04cad11348af6a1d7.png)

No sé qué cosa tengo que cambiar para que una sola linea salga del centro, y no todas.

Gracias

---

<div class="post-metadata">

**Author:** ![josephh](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/josephh/32/210_2.png) [@josephh](https://discourse.processing.org/u/josephh)\
**Post date:** [June 26, 2020, 3:15pm UTC](https://discourse.processing.org/t/line-y-for-ayuda/22137/2 "2020-06-26T15:15:24Z")

</div>

Hola,

Recuerda que es mejor publicar tu código directamente como texto en el foro para que la gente pueda copiarlo y modificarlo.

Aquí hay una solución usando algunas transformaciones para repetir tus líneas 4 veces:

```auto
void setup(){
  size(500, 500);
}

void draw(){
  background(255);
  
  drawPattern(width/2, height/2, 300, 10);
  
  // Stops the draw loop
  noLoop();
}

void drawPattern(int x, int y, int size, int nbLines){
  pushMatrix();
  // Translate accordingly to the center of the pattern
  translate(x - size / 2, y - size / 2);
  
  // Draw the lines
  pushMatrix();
  for(int i=0; i<4; i++){
    drawLines(size, nbLines);
    // Translate to the next corner
    translate(size, 0);
    // Rotate 45°
    rotate(HALF_PI);
  }
  popMatrix();
  
  
  stroke(0);
  strokeWeight(3);
  
  // Draw diagonals
  line(0, 0, size, size);
  line(0, size, size, 0);
  
  // Draw rectangle
  noFill();
  rect(0, 0, size, size);
  
  popMatrix();
}

// Draw the lines from the left corner
void drawLines(int size, int nbLines){
  stroke(0);
  strokeWeight(2);
  
  for(int i=0; i<nbLines; i++){
    float diag = i * (size / nbLines / 2);
    line(diag, diag, i * (size / nbLines), 0);
  }
}

```

![Capture d’écran de 2020-06-26 17-10-33](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/7/77d9b2f696af2dcc3c3bdcf5164e3297cf4fe45e.png)

El principio es el siguiente:

La función `drawLines` dibuja las líneas desde la esquina superior izquierda. Le damos el tamaño de todo el rectángulo y el número de líneas a dibujar. Luego la función `drawPattern` dibuja todo el rectángulo, las diagonales y llama a la función para dibujar las líneas cuatro veces y cada vez rotando 45°.

- [push](https://processing.org/reference/pushMatrix_.html)
- [rotate](https://processing.org/reference/rotate_.html)
