java - 在小程序中创建递归矩形 - AP Computer Science Recursion Lab17b
问题描述
这是最终目标:
该问题要求我进行递归,以填充上图所示的矩形,并且我已经能够将矩形扩展到左上角,但不能扩展到其他角。我需要关于如何在其他角落绘制矩形的帮助:我尝试了增加参数(maxX 和 maxY)等方法,但它们也增加了矩形大小。
我的程序是:
// This is the 100 point version.
// Xingjian Wang
// 2020
// APCS, Chris Robinson
import java.awt.*;
import java.applet.*;
public class Testing02 extends Applet {
public void paint(Graphics g) {
drawSquare1(g, 1000, 650, 6);
}
public void drawSquare1(Graphics g, int maxX, int maxY, int i) {
int midX = maxX / 2;
int midY = maxY / 2;
int startWidth = maxX / 3;
int startHeight = maxY / 3;
int tlX = midX - (startWidth / 2);
int tlY = midY - (startHeight / 2);
if (i == 6) {
g.fillRect(tlX, tlY, startWidth, startHeight);
drawSquare1(g, maxX / 2, maxY / 2, i - 1);
}
else if (i == 0) {
draw4(g, tlX, tlY, startWidth, startHeight);
}
else {
draw4(g, tlX, tlY, startWidth, startHeight);
drawSquare1(g, maxX / 2, maxY / 2, i - 1);
}
}
public void draw4(Graphics g, int tlX, int tlY, int startWidth, int startHeight)
{
g.fillRect(tlX, tlY, startWidth, startHeight);
g.fillRect(tlX, tlY + startHeight * 3, startWidth, startHeight);
g.fillRect(tlX + startWidth * 3, tlY + startHeight * 3, startWidth, startHeight);
g.fillRect(tlX + startWidth * 3, tlY, startWidth, startHeight);
}
}
这是结果:
解决方案
推荐阅读
- sql - 减去“cantidad”列上的值
- c++ - 如何在睡眠时唤醒 std::thread
- python - 芹菜打弹力豆茎
- azure-logic-apps - LogicApp 的服务总线 API 连接不支持 SAS 连接字符串
- installation - 如何解决此错误 \%RESOURCE_DIR%\?
- python-3.x - 搜索不成功时如何超时 PRAW 流
- javascript - 如何重新加载 iframe 的父级而不重新加载它
- c# - LineRender 未在 Unity 版本 2018.2.10 上显示
- apache-spark - 从 Avro 文件读取时火花提交失败
- java - 在无头模拟器中运行时,仪器测试失败