Tuesday, February 24, 2015

Tree java in a pgm



Tree.java

public class Tree
{

  public static void tree(int n, double x, double y, double a, double   branchRadius)
    {
        double bendAngle   = Math.toRadians(15);
        double branchAngle = Math.toRadians(37);
        double branchRatio = .65;

        double cx = x + Math.cos(a) * branchRadius;
        double cy = y + Math.sin(a) * branchRadius;
        StdDraw.setPenRadius(.001 * Math.pow(n, 1.2));
        StdDraw.line(x, y, cx, cy);
        if (n == 0) return;

        tree(n-1, cx, cy, a + bendAngle - branchAngle, branchRadius * branchRatio);
        tree(n-1, cx, cy, a + bendAngle + branchAngle, branchRadius * branchRatio);
        tree(n-1, cx, cy, a + bendAngle,              
        branchRadius * (1 - branchRatio));
  }
   public static void main(String[] args)
   {
        int N = Integer.parseInt(args[0]);
        StdDraw.show(0);
        tree(N, .5, 0, Math.PI/2, .3);
        StdDraw.show(0);
    }
}

No comments:

Post a Comment