Run this on TurboWarp: https://turbowarp.org/1103532942 You can move the sliders around to change the position and size of the circle. There's a dot at (0, 0) which is where the light is emitted from. This isn't perfect, if (0, 0) lies inside the circle, things will get a little weird if an x or y position is equal to ±r, if the shadow spans over two corners, or if the way a covered corner lines up with the other border-intersection crosses over x=0 or y=0, but in most cases it's fine. As long as the circle is always a little bit far away things should work as expected. Thanks to @TheLogFather and @Jamohyperturbopro for their triangle filler: https://scratch.mit.edu/projects/24828481/