// https://archive.org/details/HAKMEM/page/n73/mode/1up
// articles 149-152
#include <TVout.h>
TVout TV;
void setup() {
TV.begin(PAL);
}
bool inCircle(int px, int py, int radius) {
return (px*px + py*py) <= (radius*radius);
}
bool onCircleLine(int px, int py, int radius, int thiccness) {
return inCircle(px, py, radius + thiccness/2) &&
!inCircle(px, py, radius - thiccness/2);
}
void loop() {
int16_t cx = 70;
int16_t cy = 50;
int16_t cr = 25;
int16_t ct = 8;
for (int16_t x = 0; x < 200; x++)
for (int16_t y = 0; y < 200; y++)
if (onCircleLine(x - cx, y - cy, cr, ct))
TV.set_pixel(x, y, 1);
return 0;
}