【发布时间】:2014-08-27 21:44:05
【问题描述】:
我正在学习递归,我正在尝试使用 java 制作分形 H-tree。我有一个名为 simple H 的方法,它使 H 树的顺序为 1。我的方法的头部是这个:
public void simpleH(Graphics g, int x, int y, int size){
g.drawLine(x, y, x, y+tamaño); //right
g.drawLine(x, y+tamaño/2, x+tamaño, y+tamaño/2); //middle
g.drawLine(x+tamaño,y,x+tamaño,y+tamaño); //left
}
我正在尝试做的是使用paint() 方法使用递归方法重绘H 树,但我被卡住了,因为我找不到调用simpleH 方法来绘制H 树的方法根据用户输入的内容订购 2,3,4。另外,我很挣扎,因为我无法调用paint() 方法来绘制线条。任何人都可以给我一些提示吗?
public void paint(Graphics g,int n, int x, int y, int size){
if(n==0){
return;
}
int x1 = x-size/2;
int y1=y;
int x2=x+size/2;
int y2=y;
g.drawLine(x1, y1, x2, y2);
//left line
y1 = y-size/2;
x2=x1;
y2=y+size/2;
g.drawLine(x1, y1, x2, y2);
//left recursion
paint(g,n-1,x1,y1,size/2);
paint(g,n-1,x2,y2,size/2);
//right line
x1=x+size/2;
x2=x;
g.drawLine(x1, y1, x2, y2);
//right recursion
paint(g,n-1,x1,y1,size/2);
paint(g,n-1,x2,y2,size/2);
【问题讨论】:
-
从
paintComponent(Graphics g)调用paint
标签: java swing recursion jframe fractals