Branch Assignment

From CSE425S Wiki
Jump to navigation Jump to search

Lindenmayer system

Dragon trees.jpg

Code to Investigate

class Turtle
  def self.set_color(color)
    glColor3f(color.red, color.green, color.blue)
  end

  def self.draw_line(length, width_in_pixels)
    glLineWidth(width_in_pixels)
    glBegin(GL_LINES)
    glVertex2d(0.0, 0.0)
    glVertex2d(length, 0.0)
    glEnd()
  end

  def self.move_forward(magnitude)
    glTranslatef(magnitude, 0.0, 0.0)
  end

  def self.turn(theta)
    glRotatef(theta, 0.0, 0.0, 1.0)
  end
end

Code to Implement

OpenGLStackUtils

class OpenGLStackUtils
  def self.push_do_pop
    raise :not_yet_implemented
  end
end

Branch

class Branch
  def branch(length, line_width_in_pixels, depth_remaining)
    raise :not_yet_implemented
  end
end

Note: to produce the reference images the code below was used:

      next_length = length * 0.5
      next_line_width_in_pixels = line_width_in_pixels * 0.8
Branch MaxDepth0.png Branch MaxDepth1.png Branch MaxDepth2.png Branch MaxDepth3.png Branch MaxDepth4.png Branch MaxDepth5.png
max_depth: 0 max_depth: 1 max_depth: 2 max_depth: 3 max_depth: 4 max_depth: 5