如何绘制同心正方形?

时间:2019-11-11 02:18:45

标签: processing

-创建10个不同颜色的同心正方形的草图 -当按下鼠标或键盘时合并用户输入会更改正方形的颜色 -代码必须使用变量/循环/和决策结构。

2 个答案:

答案 0 :(得分:1)

如果您的问题是它们同心,请使用rectMode()

rectMode(CENTER);
for (int i = 0; i < 10; i++) {
  rect(width / 2, height / 2, 10 * (i + 1));
}

答案 1 :(得分:0)

同心一词虽然通常用于圆圈,但实际上只是基于拉丁语的“相同中心”。因此,同心正方形就是具有相同中心(地那儿酚相遇的地方)的那些正方形。

因此,假设您需要左上角(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)

当然,这是假设您的正方形实际上是水平的。您可以做类似的事情来旋转它们,但我将其留给读者作为练习,特别是因为规范没有提及允许它:-)