## Star

*This post is part of a course on geometric modeling at the Summer Liberal Arts Institute for Computer Science held at Carleton College in 2021.*

Let’s regress back to two dimensions momentarily. Your next several shapes will start off flat. Later we will extend or extrude these flat shapes into the third dimension.

Your first challenge is to produce a five-pointed star.

### Draw

On your paper, draw a star. Draw only the outer perimeter; do not let any lines cross its inner area. Consider the origin to be at the star’s center. Label the vertices in a counter-clockwise fashion, starting from 0.

Plot a circle that touches only the outer points of the star. What is its radius? Plot a circle that touches only the inner points of the star. What is its radius?

What is the angle between the x-axis and a line to the vertex whose index is 0? Between the x-axis and a line to the vertex whose index is 1? Label all the angles.

### Function

Write a function named `generateStar`

. Have it accept these parameters:

- The
`majorRadius`

of the star, which is the distance from its center to the outer circle. - The
`minorRadius`

of the star, which is the distance from its center to the inner circle.

Create your empty positions and triangles arrays. Return them in an object.

### Positions

Generate the vertex positions either manually or using a loop. Turn each vertex’s angle (in radians) to Cartesian coordinates using sine and cosine.

Render your scene using points. You should see the alternating pattern of the star’s vertices.

### Triangles

Modify your drawing by adding lines between vertices so that the star is broken up into triangles. How many lines do you need? How many triangles are there?

Enumerate the triangles’ indices in your array of triangles.

Render your scene as a solid mesh. You should see a filled star.