Stap 24: continu mesh roterende 90deg elke laag
Dit toont een punt continu tracering mazenpatroon in een X, Y-vlak.
De Maas is rotatated 90deg na elke laag wordt getraceerd.
Dit kan worden gebruikt om uitvoer X, Y Routebeschrijving naar de stappenmotoren.
Z as controle kan worden toegevoegd aan dit.
Verwerking / / /
/**
* Punt beweegt heen en weer over het scherm - beweging bevat in de X- en Y-richting
Wordt herhaald over en over, roterende 90deg telkens een laag is voltooid
enkele oneven stappen neemt aan het begin
verschillende variabelen worden gebruikt om aan te geven dat dit uitgevoerd wordt
(en omdat ik ben vergeten wat ik was met behulp van variabelen)
*/
int res = 50; afdrukresolutie
int een = 10;
int b = 10;
int dir_a = 1;
int dir_b = 1;
int step_a = 1;
int step_b = 0;
int old_step_a = 1;
int old_step_b = 0;
int old_dir_a = 1;
int old_dir_b = 0;
int dir_switch = 0;
int old_dir_switch = 0;
int old_a = 0;
int old_b = 0;
int next_b = res;
int next_a = res;
VOID Setup
{
grootte (200, 200);
Stroke(255);
Background(50);
}
VOID draw()
{
Background(50);
Als ((een < 10 || een > hoogte - 10) & & old_step_b == 0) {}
dir_a = -1 * dir_a;
next_b = b + res;
dir_switch = 1;
}
Als ((old_dir_switch! = dir_switch) & & b < next_b) {}
step_a = 0;
step_b = 1;
dir_switch = 0;
}
Als (b > next_b) {}
step_a = 1;
step_b = 0;
next_b = b + res;
dir_switch = 0;
}
Als ((b < 10 || b > breedte - 10) & & old_step_a == 0) {}
dir_b = -1 * dir_b;
next_a = een + res;
dir_switch = 1;
}
Als ((old_dir_switch! = dir_switch) & & een < next_a) {}
step_b = 0;
step_a = 1;
dir_switch = 0;
}
Als (een > next_a) {}
step_b = 1;
step_a = 0;
next_a = een + res;
dir_switch = 0;
}
berekenen van positie
een = een + dir_a * step_a;
b = b + dir_b * step_b;
display punt
Point(b, a); Syntaxis punt (x1, y1)
sommige waarden opslaan als oud voor vergelijking
old_a = een;
old_b = b;
old_step_a = step_a;
old_step_b = step_b;
old_dir_a = dir_a;
old_dir_b = dir_b;
old_dir_switch = old_dir_switch + dir_switch;
Print(b);
Print(',');
println(a);
}