私はJavaでコード化することを学んでおり、Javaプログラミングの再帰部分を得ました。私は再帰的な方法に入ることの基礎を理解しており、ヒルベルト曲線(およびレビーC曲線)を埋め込む空間をコーディングしようとしており、実際の再帰部分まですべてがスムーズに航行しています。私は再帰的な方法を考え出すのに問題があり、誰かが私を助けてくれるかどうかを知りたいと思っています。また、私はそれがDrawHilbertメソッドにある必要があることを知っています。空き領域の再帰アルゴリズムJavaのヒルベルト曲線
public class HilbertCurve extends JPanel {
int N;
/**
* Constructor for Hilbert Curve
*/
public HilbertCurve()
{
Scanner myKeyboard = new Scanner(System.in);
System.out.println("Enter an integer number to indicate the level of recursive depth: ");
N = myKeyboard.nextInt();
// Create a JFrame - a window that will appear on your screen
JFrame f = new JFrame();
// Tells the program to quit if you close the window
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Puts your drawing into the window (the JFrame)
f.add(new JScrollPane(this));
// Changes the size of the window on the screen
f.setSize(600, 600);
// Changes where the window will appear on your screen
f.setLocation(200, 200);
// Makes the window appear
f.setVisible(true);
}
public void setupHilbert (Turtle turtle)
{
turtle.penup();
turtle.setXY(0,0);
// draw a simple rectangle that is 100x50 pixels
turtle.pendown();
drawHilbert(turtle, N);
}
public void drawHilbert(Turtle turtle, int n) {
if (n == 0) return;
turtle.changeColor(Color.GREEN);
turtle.changeWidth(2);
turtle.left(-90);
turtle.forward(100);
turtle.left(90);
turtle.forward(100);
turtle.left(90);
turtle.forward(100);
turtle.left(-90);
turtle.penup();
}
protected void paintComponent(Graphics g)
{
Turtle turtle = new Turtle((Graphics2D) g, getBounds());
turtle.setHeadingMode(Turtle.DEGREE);
setupHilbert(turtle);
}
// plot a Hilbert curve of order N
public static void main(String[] args)
{
Scanner myKeyboard = new Scanner(System.in);
HilbertCurve test = new HilbertCurve();
}
}
おかしい事は反復アルゴリズムは、ヒルベルト曲線を描画するためにもはるかに難しいことではありませんがあることである再帰的な方法:https://marcin-chwedczuk.github.io/iterative-algorithm-for-drawing-hilbert -curve – csharpfolk