Branch Assignment
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
Further, in the recursive case the child branches were drawn before the line at the current depth to allow the green to be beneath the brown.
max_depth: 0 | max_depth: 1 | max_depth: 2 | max_depth: 3 | max_depth: 4 | max_depth: 5 |