右圆没有使用递归,但我希望递归圆(左)看起来相似。可能是很少的代码会在需要时提供更多。这是我正在努力解决的使凝聚圆保持在中心的方程式。谢谢您的任何帮助,我们将不胜感激。
// 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);
}
最佳答案
由于xCorner
和yCorner
是左上角坐标,因此需要正确计算新坐标。请尝试输入这段代码,我很快就会在答案中添加更多信息。这是假设您的初始直径=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);
}
关于java - 递归将同心圆压缩 10%,同时保持相对于中心的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47724905/