main-content

## Über dieses Buch

This book is about graphics programming based on OPENGL. The program­ ming language is C++. The programs will run under various operating systems, among them WINDOWS 9x, ALPHA-STATIONS (Digital workstations) and SILI­ CON GRAPHICS workstations. Hardware is used if accessible. The book provides a graphics library. This library is based on OPENGL and expands the elemen­ tary routines. Thus, the reader is enabled to realize direct geometrical thinking without having to care much about implementation. The enclosed modules provide the reader with solutions for: • The most common intersection problems and measuring tasks of both pla­ nar and spatial geometry. • The creation ofarbitrary geometric objects, e.g., by means ofdifferent kinds of "sweeping." • The creation of the most general solids by means of Boolean operations (intersection, union, and complements of solid polyhedra). The book presents: • A well documented, versatile, and robust geometry library. The reader can use it very easily and expand it in any way he/she likes. vi Preface • A programming course that provides a deeper insight into object-oriented thinking and programming.It contains an introduction to C++ (for begin­ ners and intermediate programmers) that is influenced by the experience gained from thousands of programming hours (which may even be useful to experienced programmers).

## Inhaltsverzeichnis

### 1. Graphics Programming

Abstract
In this chapter, we discuss an apparently simple matter: you have a geometric concept and you want to work out a computer program to realize your ideas.
Georg Glaeser, Hellmuth Stachel

### 2. Getting Started

Abstract
In this chapter, we will show you elementary things like how to write a 2D application or a 3D application. We will also briefly mention how to get simple animation easily.
Georg Glaeser, Hellmuth Stachel

### 3. Basic Objects

Abstract
In this chapter, we will go a bit more into detail and explain the most common basic classes of OPEN GEOMETRY. Objects like vectors, points, straight lines, planes, and circles are implemented both in 2-space and in 3-space. In the next chapters we will extend these primitives to more complex geometric objects like curves, parametrized surfaces, polyhedra, etc.
Georg Glaeser, Hellmuth Stachel

### 4. Curved Lines and Polygons

Abstract
In this chapter, we describe how to work with polylines and polygons. A polyline is a set of points that is connected by straight edges in a given order. Polygons are closed polylines. Polygons can be convex or non-convex (in the latter case they can also consist of several “loops”). They can be filled with constant color, shaded according to certain illumination models, “textured” etc. Finally, we will also introduce conics (conic intersections).
Georg Glaeser, Hellmuth Stachel

### 5. Primitive Elements in Space

Abstract
In the previous chapter, we introduced basic geometrical elements like points, lines, polygons, conics, etc. In this chapter we will describe how simple polyhedra like “boxes” (parallelepipedums), prisms, cylinders, pyramids, cones, and frustums, etc., are implemented in OPEN GEOMETRY. We also describe our “virtual camera.”
Georg Glaeser, Hellmuth Stachel

### 6. Complex Surfaces

Abstract
In this chapter, we will learn how to decribe and display more complicated surfaces. Among these surfaces we will mainly speak about “mathematical surfaces,” i.e., surfaces that are described by mathematical equations. We also introduce “swept surfaces,” i.e., surfaces that are swept when a space curve is somehow moved in space.
Georg Glaeser, Hellmuth Stachel

### 7. Solids

Abstract
In this chapter, we talk about how solids can be stored in computer files so that sufficient information is provided for a wide range of geometrical questions concerning these solids. In particular, polyhedral solids are treated. We focus on their boundary representation since it is mainly in OPEN GEOMETRY that this model is used. At the end of this chapter, the difficulties are addressed that can naturally arise from Boolean products of polyhedra.
Georg Glaeser, Hellmuth Stachel

### 8. Boolean Operations

Abstract
Boolean set operations have their prominent position in solid modeling. The algorithms behind are fairly nontrivial programs, and their proper treatment leads easily to a very hairy case analysis. This analysis must be based on various tests for the identity of points or vectors, for linear dependence, complanarity, and intersection, which are difficult to implement robustly in the presence of numerical errors.
Georg Glaeser, Hellmuth Stachel

### 9. Kinematics—Geometry of Motion

Abstract
In this chapter, we will introduce programming of 2D Kinematics by means of OPEN GEOMETRY. Kinematics means—roughly speaking—geometry of motion. It investigates point paths, envelopes, velocities, and accelerations, etc., during constrained motions.
Georg Glaeser, Hellmuth Stachel

### 10. Interesting Classes of Surfaces

Abstract
In this chapter, we will introduce some classes of surfaces that are probably not very well described in the literature. Among them are the spiral and the so-called “helispiral” surfaces that are common in nature. We will present some approximations to horns of antelopes and shells.
Georg Glaeser, Hellmuth Stachel

### 11. Data Exchange, Printouts

Abstract
An important criterion for successful program systems is the compatability with other programs on the market. When a system can import from and export to a standardized data format, it is “connected to the world.”
Georg Glaeser, Hellmuth Stachel

### 12. More Classes and Examples

Abstract
In this chapter, we will give some more examples for typical OPEN GEOMETRY programs. They partly deal with OPEN GEOMETRY classes that have not been explained so far.
Georg Glaeser, Hellmuth Stachel

### Backmatter

Weitere Informationen