p5.js | RectMode() Función

La función rectMode() en p5.js se usa para cambiar la forma en que se interpretan los parámetros dados a la función rect() . Esto modifica la ubicación desde donde se dibuja el rectángulo.

A esta función se le pueden dar cuatro modos:

  • ESQUINA: este modo interpreta los dos primeros parámetros como la esquina superior izquierda de la forma. Los parámetros tercero y cuarto son su ancho y alto. Es el modo predeterminado.
  • ESQUINAS: este modo interpreta los primeros dos parámetros como la esquina superior izquierda y los otros dos parámetros como la ubicación de la esquina opuesta.
  • CENTRO: Este modo interpreta los dos primeros parámetros como el punto central de la forma. Los parámetros tercero y cuarto especifican el ancho y la altura de la forma.
  • RADIO: Este modo interpreta los dos primeros parámetros como el punto central de la forma. Los parámetros tercero y cuarto especifican la mitad del ancho y alto de la forma.

Sintaxis:

rectMode( mode )

Parámetros: Esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación.

  • modo: Es una constante que define qué modo usar. Puede tener los valores de ESQUINA, ESQUINAS, CENTRO o RADIO.

Los siguientes ejemplos ilustran la función rectMode() en p5.js:

Ejemplo:

let currMode;
  
function setup() {
  createCanvas(500, 400);
  textSize(16);
  
  // Define all the rectModes()
  let rectModes = [CORNER, CORNERS, CENTER, RADIUS];
  let index = 0;
  currMode = rectModes[index];
  
  // Define a button to switch between the modes
  let closeBtn = createButton("Change rectMode");
  closeBtn.position(220, 40);
  closeBtn.mouseClicked(() => {
    if (index < rectModes.length - 1) index++;
    else index = 0;
    currMode = rectModes[index];
  });
}
  
function draw() {
  clear();
  text("Click on the button to"+
       " change the rectMode()", 20, 20);
  fill("green");
  
  // Draw the first rectangle with default mode
  rectMode(CORNER);
  rect(100, 100, 100, 100);
  
  fill("red");
  
  // Set the rectMode according to the defined mode
  rectMode(currMode);
  
  // Draw the second rectangle according to the
  // selected rectMode() and different dimensions
  rect(100, 100, 50, 50);
  
  // Draw circles to demonstrate corners of
  // the first rectangle
  circle(100, 100, 10);
  circle(200, 100, 10);
  circle(100, 200, 10);
  circle(200, 200, 10);
  
  fill("black");
  text("Current Mode: " + currMode, 20, 250);
  
  // Show details of parameter according to selected mode
  switch (currMode) {
    case CORNER:
      text("1st Parameter: upper-left"+
           " corner x coord", 20, 280);
      text("2nd Parameter: upper-left"+
           " corner y coord", 20, 300);
      text("3rd Parameter: width", 20, 320);
      text("4th Parameter: height", 20, 340);
      break;
    case CORNERS:
      text("1st Parameter: upper-left corner"+
           " x coord", 20, 280);
      text("2nd Parameter: upper-left corner"+
           " y coord", 20, 300);
      text("3rd Parameter: opposite corner x", 20, 320);
      text("4th Parameter: opposite corner y", 20, 340);
      break;
    case CENTER:
      text("1st Parameter: shape's center"+
           " point x coord", 20, 280);
      text("2nd Parameter: shape's center"+
           " point y coord", 20, 300);
      text("3rd Parameter: width", 20, 320);
      text("4th Parameter: height", 20, 340);
      break;
    case RADIUS:
      text("1st Parameter: shape's center"+
           " point x coord", 20, 280);
      text("2nd Parameter: shape's center"+
           " point y coord", 20, 300);
      text("3rd Parameter: half of shape's"+
           " width", 20, 320);
      text("4th Parameter: half of shape's"+
           " height", 20, 340);
      break;
    default:
      break;
  }
}

Producción:

rectMode-allModes

Editor en línea: https://editor.p5js.org/

Configuración del entorno: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/

Referencia: https://p5js.org/reference/#/p5/rectMode

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *