Fenster Malen

Aufrufe: 641     Aktiv: 05.12.2021 um 20:40

0

Schreiben Sie eine rekursive Funktion

function drawWindow(x, y, len, n) welche mit canvas.rect ein Quadrat auf den Canvas malt. Die linke obere Ecke des Quadrats ist der Punkt (x, y)(x,y) und die Kantenlänge ist len. In das Quadrat hinein sollen per Rekursion vier weitere Quadrate gemalt werden. Dazu wird das ursprüngliche Quadrat in seine vier Quadranten geteilt. Jedes der vier Quadrate wird in einem Quadranten zentriert, so dass seine Kantenlänge 42% der ursprünglichen Kantenlänge ist.

In die so entstehenden Quadrate sollen wieder jeweils vier Quadrate gemalt werden, und so weiter. Dabei gibt das n im Aufruf an, wie tief die Rekursion verschachtelt werden soll. n=0n=0 bedeutet, dass nur ein Quadrat gemalt wird. Bei n=1n=1 werden ein großes und vier kleine Quadrate gemalt, bei n=2n=2 zusätzlich 16 kleinere Quadrate, uns so weiter. So entstehen Muster, die ein wenig wie immer weiter unterteilte Fenster aussehen.

Beispiel: Der Aufruf

drawWindow(10, 10, 200, 1); erzeugt fünf Quadrate, die (ohne Rekursion) wie folgt gemalt werden könnten: canvas.rect(10, 10, 200, 200); canvas.rect(18, 18, 84, 84); canvas.rect(118, 18, 84, 84); canvas.rect(18, 118, 84, 84); canvas.rect(118, 118, 84, 84);

Diese Frage melden
gefragt

Student, Punkte: 10

 

Und die Frage dazu?

  ─   jupiter 05.12.2021 um 20:40
Kommentar schreiben
0 Antworten