The HTML file:
<head>
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"> </script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<link rel="stylesheet" href="http://mirkwood.cs.edinboro.edu/~bennett/style/hw.css">
</head>
<body>
<canvas id="canvas" width="400" height="400" style="border:1px solid #000000;"></canvas>
<p>
<script type="text/javascript">
"use strict"
let canvas = document.getElementById("canvas");
let ctx = canvas.getContext('2d');
canvas.tabIndex = 0;
function LERP(a,b,alpha) {
return a*(1-alpha) + b * alpha;
}
function SetPixel(x, y, color = "black") {
x = Math.round(x);
y = Math.round(y);
ctx.beginPath();
ctx.fillStyle = color;
ctx.fillRect(x,y,2,2);
ctx.fill()
return;
}
let theta, r, hue, color;
let cx = canvas.width/2;
let cy = canvas.height/2;
let dalpha = 1/1200;
for(let alpha=0;alpha<=1; alpha += dalpha) {
r = LERP(0, Math.min(cx,cy), alpha);
theta = LERP(0, 4*Math.PI, alpha);
hue = LERP(240, 360, alpha);
let color = "hsl("+hue + ", 100%, 50%)";
SetPixel(cx + r*Math.cos(theta), cy - r*Math.sin(theta), color);
}
</script>