CSE 167 Fall 2004: Let’s Play some Pool
Written by: Timothy
Cheng
Contact info:
ttcheng@ucsd.edu
For my project, I made a nice little
bar and pool hall. The room is 32 X 32 X
12 feet with four pool tables, several paintings of animals playing games on
the walls, windows, a door, and (of course) a fully stocked bar. The pool tables are modeled after Olhausen’s Champion Pro table. They are relatively close to BCA equipment
specifications (though they are not tournament size). The playing surface is 8 feet by 4 feet and
is 2.5 feet off the floor. The holes are
each 5.52 inches in diameter and the frame is in a cool black color. The pool sticks are around 54 inches long and
tapered from 1.2 inches at the butt end, to a little more than half an inch on
the tip. The best part about the bar,
however, has got to be the happy hour specials every weekday from
The controls are pretty simple for
my pool table. To look around, just use
the arrow keys. To turn off the lights
in the room, press “1”.
My original intention was to just
create a pool table. I am fairly
satisfied with what I accomplished, but am also very disappointed that I did
not have more time to add more features.
At the end of my project, I stopped focusing on the pool table, and
started focusing more on the look of the room in general. I tried to find a nice looking texture for
the wall, but just couldn’t find one that looked liked it belonged. Instead, I just created my own simple one in
paint. I was also originally going to
put a texture on each ball with the ball’s number, color, and a stripe for the
striped balls. Compilers, however, take
a long time to make and I was unable to implement this feature.
My table is created using a lot of
glut solid cubes. The challenging parts
were the holes and trying to keep my dimensions straight so the pool table
would simulate a real pool table as closely as possible. For the holes, I created a helper function to
draw a quarter of the hole using the principle of surfaces of rotation. Using this, I could create a segment of the
proper width, and any height specified.
I also used surfaces of rotation for the stick. The stick was basically two cones with the
tops cutoff and stuck on top of each other.
I used a helper function to make these cones, specifying the height of
the cone and the radius of the top and bottom surfaces. Using this helper function, I could also
create cylinders, which were used to create the black butt and tip of the
stick.
I hope you enjoy my project. Any comments/criticisms would be appreciated
an can be sent to ttcheng@ucsd.edu