Render Part A Assignment
OpenGL
GLUT
Code to Investigate
Cavalcade of Graphics
ruby/examples/cavalcade_of_graphics.rb
Code to Implement
Components
Each of the renderable components has its own file in the ruby/render/assignment directory.
Equilateral Triangle
The triangle should be equilateral, rendered with its the origin at the center of mass.
Your constructor should accept a half_side_length
parameter.
The height of the triangle should be side_length * sqrt(3)/2
The center of mass is one third from the bottom.
So, the bottom left point A's x coordinate should be -half_side_length
and its y coordinate should be -1/3 height
.
Rectangle
Ellipse
Note: to produce the reference image the code below was used:
slice_count = 32 delta_theta = (2*Math::PI) /slice_count
Chord
Note: to produce the reference image the code below was used:
slice_count = 32 delta_theta = (@theta_z-@theta_a) / slice_count
Note: a Chord with 32 slices will have 33 points.
Image
Text
Bézier Curve
Point2
To support Bézier curves you will want to implement Point in point2.rb. You may wish to use Ruby's convenient Struct construct.
You should be able to construct a Point2 with an x and a y and be able to access those values.
Component
Quadratic (Second Order) Curve: | ![]() |
![]() |
Quadratic (Third Order) Curve: | ![]() |
![]() |
Fourth Order Curve: | ![]() |
![]() |
Testing Your Solution
Visual Comparison
file to run: | src//ruby/render/part_a/part_a_test_snapshots_web_page_generator.rb | ![]() |
Unit Test
file: | src/test/ruby/render/part_a/part_a_unit_test.rb | ![]() |
note: ensure that you have removed all printing to receive credit for any assignment.