Computer Graphics Modeling Assignments

Collection of assignments with a programming component I made for the modeling course (Computer Science 589 at the University of Calgary) I took in fall 2019.


Hypocycloid

Features

  • Draws hypocycloids of any inner and outer circle radii.
  • User can change:
    • Inner and outer circle radii.
    • Resolution of the resulting curve.
    • Speed at the curve is drawn. (How many vertices are generated before showing the curve to the user)
    • Number of complete rotations of the curve.
    • Color of the curve with the alpha value alpha value defining how much of the user defined rgb values should be interpolated with colors based on the coordinates of the curve’s vertices.
    • Enable/disable:
      • Outer circle outline.
      • Inner circle outline.
      • Dot indicating where the curve is being drawn.
    • Option to draw a coordinate dependent polynomial curve \((Q(u)=P_0 + P_1u + P_2u^2, 0 \le u \le 1 )\) which demonstrates what happens when the weights of a curve do not sum to one.

Screenshots

Videos

Credits


B-Spline Curve

Features

  • Based on my assignment 1 code except I replaced the hypocycloid with B-splines.
  • Supports modeling:
    • B-splines of any order.
    • Nonuniform standard knot sequences.
    • NURBS (Non-uniform rational basis spline).
  • Add/move/delete control points.
  • Individually show/hide any element.
  • Edit knots and NURBS from the UI.
  • Show de Boor’s algorithm as it computes the curve.

Screenshots

Credits