Arduino 2D nivå (5 / 8 steg)
Steg 5: Här är koden
Observera att cirkeln ritas i 4 kvadranter. Vi belyser 4 lysdioder för varje y vi beräkna.
Bilderna visar stegen för att rita cirkeln som x itererar från 0 till radie
#include < Charliplexing.h > Cirkel: radie, inledande och max x / y-värden void setup() void loop() void DrawCircle(int ink)
int radie = 3;
int cx = 6; x-position av cirklar
int cy = 4; y-position av cirklar
{
Serial.BEGIN(9600);
LedSign::Init();
}
{
DrawCircle(1); Rita en cirkel
}
bläck = 0: radera cirkeln
bläck = 1: Rita cirkeln
{
för (int x = 0; x < = radie; x ++) / / x-värden från 0 till RADIUS (en kvadrant)
{
lösa r ^ 2 = x ^ 2 + y ^ 2 för y
float y = sqrt (pow (radie, 2) - pow (x, 2));
y = round(y*1);
Fyll den y-positionen i de 4 kvadranterna av cirkla
LedSign::Set (x + cx, y + cy, bläck); Kvadrant 1
LedSign::Set (x + cx, cy - y, bläck); Kvadrant 4
LedSign::Set (cx - x, y + cy, bläck); Kvadrant 2
LedSign::Set (cx - x, cy - y, bläck); Kvadrant 3
}
}