JSFiddle - React, Tailwind, and code Playground

by Steve Eberhardt

HTML

<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="250" height="250"></canvas>

<button id="rotate">rotate</button>

CSS

body {
  font-family: sans-serif;
  margin: 0;
}

canvas {
  border: 1px solid red;
}

JavaScript

const points = [
  {
    "x": 0,
    "y": 0
  },
  {
    "x": 100,
    "y": 100
  },
  {
    "x": 0,
    "y": 100
  },
  {
    "x": 0,
    "y": 0
  }
]
const poly  = new fabric.Rect();
poly.set({
	top: 150,
  left: 150,
  width:100,
  height: 100,
  fill: "green",
  flipX: true,
  //flipY: true
})


var canvas = new fabric.Canvas("c");

var group = new fabric.Group();

window.group = group;
window.poly = poly;

canvas.add(group);
group.addWithUpdate(poly);
canvas.setActiveObject(group);
canvas.renderAll();

function rotate() {
  const shape = group.item(0);
  shape.set({
    angle: shape.angle + 120
  });
  group.addWithUpdate();
  group.setCoords();
  canvas.renderAll();
}

document.getElementById("rotate").addEventListener("click", rotate);