繁体   English   中英

Java Turtle Graphics Animation Basic

[英]Java Turtle Graphics Animation Basic

这是一个通过在屏幕上移动乌龟来创建分形的程序。 为什么程序中的乌龟不移动? 任何帮助将不胜感激! 我很确定这是一个简单的修复,但我找不到它。

谢谢

  /**
  * This program is to create a fractal
  */

import java.awt.*;
class FractalEngine
{
  World world = new World(700,700); 
  Turtle turt = new Turtle(1,1,world);

public void drawFractal(String rule)
{
    turt.penUp();
    turt.moveTo(350,350);

    int lengthofRule = rule.length();

    int start = 0;
    int fin = 1;
    String tinyChar;

    for(int a = 0; a <= lengthofRule; a++)
    {
        if(start == 9)
            tinyChar = rule.substring(start);
        else 
            tinyChar = rule.substring(start,fin);

        if(tinyChar == "F")
            turt.forward(25);
        else if(tinyChar == "-")
            turt.turnLeft();
        else if(tinyChar == "+")
            turt.turnRight();
        else
            break;
        start++;
        fin++;

            System.out.println(tinyChar);
        }
    }
}
public class FractalEngineTester
{
public static void main(String[] args)
{
   FractalEngine fEng = new FractalEngine();



  String rule = "F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F";
  //String rule = "F-F+F+F-F";

   fEng.drawFractal(rule);
   //String rule = "F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F";
   //String rule = "F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F-F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F+F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F+F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F-F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F";
}
}

这段代码的问题与海龟无关 - 它与字符和字符串有关。

这不起作用:

String tinyChar = rule.substring(start, fin);

if (tinyChar == "F")

您正在混合Stringchar逻辑。 你要么做:

String tinyChar = rule.substring(start, fin);

if (tinyChar.equals("F"))  # use a method to do the String comparison

或者做:

char tinyChar = rule.charAt(start);

if (tinyChar == 'F')  // notice the change in quotes

以下是我对您的代码的重做,以解决此问题和其他问题。 我正在使用一个不同的龟包,并简化了一些东西,所以如果没有一些修改它将无法直接使用:

import java.awt.*;

class FractalEngine
{
    Turtle turt = new Turtle();

    public void drawFractal(String rule)
    {
        int lengthofRule = rule.length();

        for (int position = 0; position < lengthofRule; position++)
        {
            char tinyChar = rule.charAt(position);

            if (tinyChar == 'F')
                turt.forward(25);
            else if (tinyChar == '-')
                turt.left(90);
            else if (tinyChar == '+')
                turt.right(90);
            else
                break;
        }
    }

    public static void main(String[] args)
    {
        FractalEngine fEng = new FractalEngine();

        String rule = "F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F";

        fEng.drawFractal(rule);
    }
}

OUTPUT

在此输入图像描述

当问这样的问题时,请确保指出您的海龟图形库来自哪里,因为那里有多个库,它们并不完全相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM