右边的圆圈没有使用递归,但我希望递归的圆圈(左边)看起来类似。如果需要,可能只需要很少的代码就能提供更多。这是一个使凝聚圆保持在中心的方程,我正在努力解决这个问题。谢谢您的帮助,我们将不胜感激。
// Initial attempt
if (diameter >= 20) {
double newDiameter = diameter * .9;
drawCircles(newDiameter, xCorner += deltaDiameter * 2, yCorner += deltaDiameter * 2, g2);
}
// Working code
if (diameter >= 20) {
double newDiameter = diameter - deltaDiameter;
drawCircles(newDiameter, xCorner += (deltaDiameter / 2), yCorner +=
(deltaDiameter / 2), g2);
}
发布于 2017-12-09 11:38:29
由于xCorner
和yCorner
是左上角坐标,因此需要正确计算新坐标。请尝试输入这段代码,我将很快在答案中添加更多信息。这是假设您的初始diameter=255
;xCorner=0
;yCorner=10
和deltaDiameter=10
这是计算过程的近似图。
if (diameter >= 20) {
double newDiameter = diameter - deltaDiameter;
// System.out.println(xCorner + 255);
drawCircles(newDiameter, xCorner += (1.414 * 0.5 * deltaDiameter), yCorner += (1.414 * 0.5 * deltaDiameter), g2);
}
https://stackoverflow.com/questions/47724905
复制相似问题