Rysowanie labiryntu

0

Witam, mam do narysowania coś co przypomina labirynt (nie wiem jak to nazwać, zdjęcie poniżej)
user image

chodzi o to aby było to napisane w pętli która używa tylko jeden DrawLine, a wielkości zmieniają się co 10px(to akurat jest nieistotne bo problemem jest zapisanie tego), rozpisałem sobie to ładnie ale nie mam żadnego pomysłu jak wrzucić to do pętli.

Z góry dzięki za podpowiedzi.

0

Ja bym to nazwał spiralą.

int kierunek = 0;
for(int i=0;i<...;i++)
{
    kierunek = i%4;
    switch(kierunek)
    {
        case 0:
          //rysuj w górę
          break;
        case 1:
          //rysuj w prawo
          break;
       ...
    }
}
0
zmiana = ...
długość = ...

(x1, y1) = (0, 0)
(x2, y2) = (x1, y1 + długość)
dopóki długość > 0 rób:
    drawLine(x1, y1, x2, y2)

    jeśli bok == lewy:
        y1 = y2
        x2 += długość
    jeśli bok == górny:
        x1 = x2
        y2 -= długość
    jeśli bok == prawy:
        długość -= zmiana
        y1 = y2
        x2 -= długość
    jeśli bok == dolny:
        x1 = x2
        y2 += długość

zmiana to liczba pikseli, o którą długość maleje (u ciebie 10)
x1, y1, x2, y2 to współrzędne odpowiednio punktu początkowego i końcowego odcinka
długość to długość odcinka (u ciebie początkowo 100)
bok to aktualnie rysowany bok (przechowujesz numer w zmiennej i co iterację zmieniasz)

Zakładamy, że punkt (0, 0) znajduje się w lewym dolnym rogu (ale to nie ma znaczenia, inaczej będzie się zawijać w inną stronę) i za każdym razem skracamy dolny bok (tak jak u ciebie na rysunku).

1 użytkowników online, w tym zalogowanych: 0, gości: 1