I chose the coordinates specified for Assignment 3 (*-2 < {x, y, z} < 2*) because they’re relatively simple, as modeling coordinates go, but they’re pretty much arbitrary — feel free to replace them with a more convenient modeling coordinate system of your choice.

## Archive for March, 2005

### Modeling coordinates

Thursday, March 31st, 2005### gluCylinder

Thursday, March 31st, 2005John Kim points out that you can draw Assignment 3’s pyramid using gluCylinder by specifying a * topRadius* of 0 and only drawing 4 slices.

I kinda wish I’d thought of this; it’s much better than the Toblerone bar example I used in class.

### SIGINT

Wednesday, March 30th, 2005For those of you who are interested in spy-stuff, I recommend the new book *Chatter: Dispatches from the Secret World of Global Eavesdropping* by Patrick Radden Keefe.

To quote Scott McNealy (CEO of Sun Microsystems): “You already have no privacy. Get over it.”

### The Secret Service and Distributed Computing

Tuesday, March 29th, 2005The *Washington Post* has an article on the Secret Service’s internal system for cracking encrypted files. Sort of their own distributed.net.

### Oops

Tuesday, March 29th, 2005Jason Obermeyer points out that roof of the temple in Assignment 3 has *4* sides, not 3, which is going to make using `glutWireTetrahedron()` kind of difficult. Try `glVertex()` instead.

### trackball.c Compiler Trouble

Tuesday, March 29th, 2005You may have trouble compiling `trackball.c`, depending on the compiler that you’re using. The problem is that compilers disagree over the contents of `<math.h>`.

Unfortunately, there are multiple standards for C libraries. The ANSI/ISO C standard `<math.h>` specifies only a few math functions. The POSIX standard `<math.h>` specifies a superset, including several useful constants like `M_PI`, and several additional functions, including `y0()` and `y1()` for computing Bessel functions.

Unfortunately, compilers tend to pick and choose. The “standard” library for the compiler I used includes `M_PI` but not `y0()` and `y1()`. If you’re using Visual C++, you’ll find that its “standard” library does the opposite: it defines `y0()` and `y1()` but not `M_PI`.

The best defense against all of this is probably to define your own constant for PI and to rename y0 and y1. By the time you read this, I’ll have updated `trackball.c` to do this.

Computers suck. Have I mentioned that?

### Spring Break Office Hours

Friday, March 25th, 2005If you need help during Spring Break (say, on the Graphics

Assignment or the Security Paper Summaries), I will be on campus 12-5pm Monday and Wednesday of next week.

### Extra Credit

Friday, March 25th, 2005I’ve posted an Extra Credit Assignment.

### Assignment 3

Friday, March 25th, 2005Note that I’ve updated the course outline to show a due date of Thursday instead of Tuesday for Assignment 3.

### Virtual Trackball Jumpstart

Wednesday, March 23rd, 2005Here’s some help getting started with the virtual trackball part of Assignment 3: grab `trackball.c`. Initially the sphere doesn’t move. Fill in the parts labeled “TODO” with the equations discussed in class, and you should end up with a running program similar to `trackball.exe`.