Może uściślijmy co rozumiesz pod pojęciem 'bryły obrotowe' - http://matma.prv.pl/obrotowe.php ?
Okienkowy program z ładnym GUI
GUI to w czym tam wybierzesz - OpenGL można stosować ze sporą ilością bibliotek, w tym chociażby nawet czystym WinAPI.
w którym użytkownik z dostępnej listy wybierze wstępny wzór przekroju, następnie sparametryzuje go trochę (wysokość, szerokość, jakieś nacięcia). Kliknie rysuj czy co tam,
Jak wyżej.
a program wygeneruje mu 3D model obrączki wyciągniętej z przekroju wzdłuż okręgu.
Główny w sumie problem programu, ale w zasadzie prosty.
Prosty pseudokod, pisany z głowy więc może być w zasadzie niepoprawny:
frame_t createFrame(double angle, vector3 axis, vector2 vert2d[]) {
frame_t result;
foreach (v in vert2d) {
result.add(rotateAroundAxis(axis, v);
}
return result;
}
quad[] createMesh(vector2 vert2d[], vector3 axis) {
frame_t frames[ITERS];
for(int i = 0; i < ITERS; i++) {
frames[i] = createFrame(i/(float)ITERS, axis, vert2d);
}
// połączenie odpowiadających vertexów w ramkach w quady/trójkąty i zwrócenie, dość trywialne
}
Pomysł jest prosty - bierzesz ten przekrój, przekształcasz na pewną ilość vertexów na 2d płaszczyźnie i obracasz
tą płaszczyzną zapamiętując gdzie znajdują się w danym momencie vertexy (coś jak tutaj - http://upload.wikimedia.org/wikipedia/commons/e/e7/Rotationskoerper_animation.gif - obrazek z wikipedii), pod koniec je łączysz.
O ile oczywiście o takie bryły obrotowe Ci chodzi...
Użytkownik będzie miał możliwość obrotu tą obrączką.
Jeśli nie będziesz przekształcał świata w inny sposób to jest akurat trywialne, po prostu zmieniasz macierz modelview przy kazdym rysowaniu (po ludzku - odpowiednio reagujesz na input myszki wywołując różne glRotaty, glTranslaty itd_