我正在嘗試在Processing/Java中編寫名爲Branch的類。我已經通過全局變量給它一個轉義條件,但它創建了太多的遞歸和一個計算器。我很難理解爲什麼。即使退出條件,euclidean樹對象堆棧溢出錯誤
int maxIterations = 10;
int iterations = 0;
class Branch
{
//props
float angle, scale, drawingScale;
PVector origin, destination;
//konstrukt
Branch (float _x, float _y, float _angle, float _scale) {
origin = new PVector(_x,_y);
angle = _angle;
scale = _scale;
calculateDestination();
drawMyself();
rebirth();
}
void rebirth() {
if(iterations < maxIterations) {
Branch bLeft = new Branch(destination.x,destination.y,angle-50,100);
Branch bRight = new Branch(destination.x,destination.y,angle+50,100);
iterations++;
}
}
void calculateDestination() {
//se till att skala alltid går uppåt.
scale = abs(scale);
scale = -scale;
destination = new PVector(origin.x+angle,origin.y+scale);
}
void drawMyself() {
drawingScale = scale * -1;
strokeWeight(10);
beginShape(LINES);
vertex(origin.x,origin.y);
vertex(destination.x, destination.y);
endShape();
ellipseMode(CENTER);
fill(255);
ellipse(origin.x,origin.y,scale/3,scale/3);
ellipse(destination.x,destination.y,scale/3,scale/3);
}
}//End Branch;
任何幫助理解爲什麼溢出或如何有效地在對象內使用遞歸非常appareiciated!
如果可能,最好有更多關於您遇到的錯誤的信息,例如,回溯。 –