Propiedad UseSetOnGroup del grupo Fabric.js

En este artículo vamos a ver cómo configurar el useSetOnGroup de un Grupo del lienzo usando Fabric.js . El Grupo en Fabric.js es móvil y se puede estirar según los requisitos. Además, el grupo se puede personalizar en lo que respecta al color del trazo inicial, la altura, el ancho, el color de relleno o el ancho del trazo.

Para hacerlo posible, vamos a utilizar una biblioteca de JavaScript llamada Fabric.js . Después de importar la biblioteca, crearemos un bloque de lienzo en la etiqueta del cuerpo que contendrá el Grupo. Después de esto, inicializaremos las instancias de Canvas y Group proporcionadas por Fabric.js y estableceremos useSetOnGoup de un Canvas Group usando la propiedad useSetOnGroup .

Sintaxis:

fabric.Group([canvas1, canvas2], {
   useSetOnGroup: Boolean
});

Parámetros: esta propiedad acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:

  • useSetOnGroup: si se establece en verdadero, las coordenadas de los objetos encerrados en un grupo no cambian.

Los siguientes ejemplos ilustran el uso de la propiedad useSetOnGroup del grupo Fabric.js en JavaScript:

Ejemplo 1:

HTML

<!DOCTYPE html>
<html>
  
<head>
  <!-- FabricJS CDN -->
  <script src=
"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js">
  </script>
  
</head>
  
<body>
    <div style="text-align: center;width: 400px;">
      <h1 style="color: green;">
          GeeksforGeeks
      </h1>
      <b>
          Fabric.js | Group useSetOnGroup Property
      </b>
    </div>
    
    <div style="text-align: center;">
      <canvas id="canvas" width="500" height="300"
      style="border:1px solid green;">
      </canvas>
    </div>
    
    <script>
      // Initiate a Canvas instance
      var canvas = new fabric.Canvas("canvas");
        
      // Initiate a circle instance
      var circle = new fabric.Circle({
        radius: 100,
        fill: 'lightgreen',
        scaleY: 0.6,
        originX: 'center',
        originY: 'center'
      });
  
      // Initiate a text instance
      var text = new fabric.Text('GeeksforGeeks', {
        fontSize: 25,
        originX: 'center',
        originY: 'center'
      });
  
      // Initiate a Group instance
      var group = new fabric.Group([ circle, text ], {
          useSetOnGroup: false
      });
  
      // Render the Group in canvas
      canvas.add(group);
  
      // Center the Group in canvas
      canvas.centerObject(group);
  </script>
</body>
  
</html>

Producción:

Ejemplo 2:

HTML

<!DOCTYPE html>
<html>
  
<head>
  <!-- FabricJS CDN -->
  <script src=
"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js">
  </script>
  
</head>
  
<body>
    <div style="text-align: center;width: 400px;">
      <h1 style="color: green;">
          GeeksforGeeks
      </h1>
      <b>
          Fabric.js | Group useSetOnGroup Property
      </b>
    </div>
    
    <div style="text-align: center;">
      <canvas id="canvas" width="500" height="300"
      style="border:1px solid green;">
      </canvas>
    </div>
    
    <script>
      // Initiate a Canvas instance
      var canvas = new fabric.Canvas("canvas");
        
      // Initiate a circle instance
      var circle = new fabric.Circle({
        radius: 100,
        fill: 'lightgreen',
        scaleY: 0.6,
        originX: 'center',
        originY: 'center'
      });
  
      // Initiate a text instance
      var text = new fabric.Text('GeeksforGeeks', {
        fontSize: 25,
        originX: 'center',
        originY: 'center'
      });
  
      // Initiate a Group instance
      var group = new fabric.Group([ circle, text ], {
        useSetOnGroup: true
      });
  
      // Render the Group in canvas
      canvas.add(group);
  
      // Center the Group in canvas
      canvas.centerObject(group);
  </script>
</body>
  
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por thacker_shahid 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 *