Problem dotyczy zbioru Cantora. Otóż, zaimplementowałem rysowanie zbioru Cantora wszystko działa, lecz chciałbym się dowiedzieć, czy można go bardziej zoptymalizować. Umieszczam tylko rekurencyjną procke rysującą zbiór, reszta programu to inicjalizacja grapha.
procedure DrawCantorSet(left, right : Word; its : Byte);
var
len : Word; // its - numer iteracji
begin // left, right - współrzędne punktu od którego rysowana jest linia
Line(left, y, right, y);
if its < n then
begin
len:=Round((right - left) / 3); // len - długość nowej linii
inc(y, 20); // współrzędna igrekowa dla linii z każdego poziomu
DrawCantorSet(left, left + len, its + 1);
DrawCantorSet(right - len, right, its + 1);
dec(y, 20);
end;
end;
Szczególnie nie wiem jak pozbyć się powtarzania instrukcji inc i dec. Najpierw zwiększam wartość y o 20, a potem zmniejszam. Jednak bez tego program nie działa poprawnie. Czy można ten problem wykonać bardziej elementarnie ??