Prerequisite: Architecture 431 or equivalent
Monday, Wednesday 10:40 am - 11:30 am
Friday Lab Session
(Unless arranged by instructor)
3 Credit hours
An introduction to the data-structures, mathematics, and algorithms underlying computer graphics, computer modeling, and computer-aided design. Topics include: data-structures for two-dimensional geometries, coordinate transformations, interactive sketching, operations and measurements on lines and polygons, polygon set-operations and windowing environments.
The instructor is Jim Turner. The student is required to purchase a course pack and a reference book.
"Programming Windows 95" by Charles Petzold (or newer edition), available from MicroSoft Press or amazon.com.
This term we will be designing and implementing a "Space Syntax" application. The first month will be spent reading papers pertaining to the subject and designing the necessary C++ classes and GUI. The second month will be spent writing the class interfaces. The third and fourth months will be spent trying to fit the pieces together. The instructor will manage the project. If all goes well this term, we can continue development in winter term. The instructor is not a very good O-O programmer and hopes to learn from the students. The winter course number will be Arch 611. Fundamentals of 2D graphic programming will be covered as listed below.
This is a computer programming course. Mondays and Wednesdays will be a lecture and recitation and Fridays will be optional lab sessions.
Week 1 Introduction Binary sorting, malloc, free, recursion Structures re-visited, enum, typedef Lab Session Assignment 1 Binary Sort Linked list example Week 2 2-D Computer Graphics Introduction PostScript library Lab Session Assignment 2 Pretty Picture 1 Clown.dat (Picture file) pslib.cpp pslib.hpp pt2_transform.cpp Pattern2.cpp Pattern2 Output Week 3 2-D Geometric Data-structures point, line, polygon, graph GeometryStructure.hpp GeometryStructure.cpp Lab Session Week 4 2-D Transformations scale, rotate, translate, reflect, multiplication Lab Session Assignment 3 2D Matrix Library matrixtest.c Week 5 2-D Viewport Transformations Lab Session Week 6 2-D Display list, Viewport Clipping MS Windows Application Programming Interface Lab Session Assignment 4 Windows Programming 1 Week 7 Windows programming Menus, Dialog boxes, Resource editor Lab Session Assignment 5 Windows Programming 2 Week 8 2-D Sketching Move, Draw, Redraw Lab Session Popfile.c Popfile.h Assignment 6 Sketch 1 Week 9 VACATION Week 10 2-D Sketching File I/O, Scale, Point snapping Lab Session Week 11 2-D Sketching Zoom-in, Zoom-out, Line clipping Lab Session ln2clp.c Utility.c Utility.h Assignment 7 Sketch 2 Week 12 2-D Sketching Line algorithms, Polygon algorithms Lab Session Week 13 2-D Drafting Commands, Menu, Data structure, Copy, Delete, Move, Sketch Lab Session Assignment 8 Sketch 3 Week 14 Converting network to polygon Convex hull, 2D set operations, wall thickness Lab Session Final Project Assignment 9 Final Project