Stap 5: Hier is de code
U ziet dat de cirkel wordt getekend in 4 kwadranten. Wij verlichten 4 LED's voor elke y die we berekenen.
De foto's tonen de stappen voor het tekenen van de cirkel als x van 0 tot straal itereert
#include < Charliplexing.h > Cirkel: de straal van, de eerste en max x / y-waarden VOID Setup void loop VOID DrawCircle(int ink)
int straal = 3;
int cx = 6; x-positie van cirkel
int cy = 4; y-positie van cirkel
{
Serial.begin(9600);
LedSign::Init();
}
{
DrawCircle(1); De cirkel tekent
}
inkt = 0: de cirkel wissen
inkt = 1: teken de cirkel
{
voor (int x = 0; x < = straal; x ++) / / x waarden van 0 tot RADIUS (een Kwadrant)
{
oplossen van r ^ 2 = x ^ 2 + y ^ 2 voor y
float y = sqrt (pow (radius, 2) - pow (x, 2));
y = round(y*1);
Vul de y-positie in de 4 kwadranten van de cirkel
LedSign::Set (x + cx, y + cy, inkt); Kwadrant 1
LedSign::Set (x + cx, cy - y, inkt); Kwadrant 4
LedSign::Set (cx - x, y + cy, inkt); Kwadrant 2
LedSign::Set (cx - x, cy - y, inkt); Kwadrant 3
}
}