Как вы рисуете концентрические квадраты? - PullRequest
0 голосов
/ 11 ноября 2019

-Создание эскиза из 10 концентрических квадратов разных цветов. -Ввод пользовательского ввода при нажатии мыши или клавиатуры изменил цвета квадратов -Код должен использовать переменные / циклы / и структуры решения.

Ответы [ 2 ]

1 голос
/ 13 ноября 2019

Если ваша проблема в том, чтобы они были концентрическими, используйте rectMode ()

rectMode(CENTER);
for (int i = 0; i < 10; i++) {
  rect(width / 2, height / 2, 10 * (i + 1));
}
0 голосов
/ 11 ноября 2019

Термин концентрический, хотя обычно используется для кругов, на самом деле просто основан на латыни «тот же центр». Следовательно, концентрические квадраты - это те, которые имеют один и тот же центр (где встречаются диаганолы).

Итак, допустим, вам нужен верхний левый угол (где X увеличивается вправо, Y увеличивается внизк низу) и длина стороны. Чтобы вычислить центр существующего квадрата:

centX = X + length / 2
centY = Y + length / 2

Затем отработать верхние левые координаты для нового квадрата заданной длины (это концентрически с первым):

X = centX - length / 2
Y = centY - length / 2

Вы можете заключить это в функцию (псевдокод), например, так:

def makeConcentricSquare(origX, origY, origLen, newLen):
    newX = origX + origLen / 2 - newLen / 2
    newY = origY + origLen / 2 - newLen / 2
    return (newX, newY, newLen)

Это, конечно, при условии, что ваши квадраты горизонтальны по своей природе. Вы можете делать подобные вещи, чтобы вращать их, но я оставлю это как упражнение для читателя, тем более что в спецификациях не упоминается, что это разрешено: -)

...