JSFiddle - React, Tailwind, and code Playground

HTML

<canvas id="canvas"></canvas>

JavaScript

function rotatePointAround(pointX,pointY,originX,originY,angle) {
    var angle = dToR(angle);
    return {
        x: Math.cos(angle) * (pointX-originX) - Math.sin(angle) * (pointY-originY) + originX,
        y: Math.sin(angle) * (pointX-originX) + Math.cos(angle) * (pointY-originY) + originY
    };
}

function dToR( degrees ){
  return degrees * (Math.PI / 180.0);
}

var canvas = document.getElementById("canvas");
var c = canvas.getContext("2d");

var originX = 50,
    originY = 50,
    terminalArmEndX = originX+50,
    terminalArmEndY = originX+50,
    currentRotation = 0;

setInterval(function reDraw() {
    c.beginPath();
    c.moveTo(originX,originY);
    terminalArmEndX = rotatePointAround(terminalArmEndX,terminalArmEndY,originX,originY,currentRotation).x;
    terminalArmEndY = rotatePointAround(terminalArmEndX,terminalArmEndY,originX,originY,currentRotation).y;
    c.lineTo(terminalArmEndX,terminalArmEndY);
    c.strokeStyle = "black";
    c.stroke();
    currentRotation += 1; // 1 degree resolution
    
    currentRotation = currentRotation % 360;
},20);