$\newcommand{\vecIII}[3]{\left[\begin{array}{c} #1\\#2\\#3 \end{array}\right]} \newcommand{\vecIV}[4]{\left[\begin{array}{c} #1\\#2\\#3\\#4 \end{array}\right]} \newcommand{\Choose}[2]{ { { #1 }\choose{ #2 } } } \newcommand{\vecII}[2]{\left[\begin{array}{c} #1\\#2 \end{array}\right]} \newcommand{\vecIII}[3]{\left[\begin{array}{c} #1\\#2\\#3 \end{array}\right]} \newcommand{\vecIV}[4]{\left[\begin{array}{c} #1\\#2\\#3\\#4 \end{array}\right]} \newcommand{\matIIxII}[4]{\left[ \begin{array}{cc} #1 & #2 \\ #3 & #4 \end{array}\right]} \newcommand{\matIIIxIII}[9]{\left[ \begin{array}{ccc} #1 & #2 & #3 \\ #4 & #5 & #6 \\ #7 & #8 & #9 \end{array}\right]}$

# CS 307 Hwk 2: Clown

This assignment has two parts: programming and math problems. Please do both.

## Goals

The main goal of this programming assignment is to help you feel comfortable with building things out of other objects.

## Clown

(Required Figure, 100 points)

Build a figure that looks like the clown shown below:

It is ok to embellish your clown, but it should have all the elements of the above clown, with roughly the same size parts.

1. You'll need to learn about the THREE.TorusGeometry object and the finer points of spheres.
2. Use embedded frames to make your coding clearer and easier.
3. This version of the Teddy Bear code displays a static image with no GUI controls, which may provide helpful hints for your design: Teddy Bear
4. Mark the origin using a yellow dot, as in the model solution. The origin must be there, between the clown's feet, so that it's easy to put the clown on a surface. This is the clown's origin.
5. Try to avoid magic constants for positioning, angles, scaling, and so forth (meaning unlabeled, undocumented numbers directly in the modeling code). Some of these are inevitable, of course, but there are connections among them, too. The positioning of the hand is related to the length of the arm, for example. Try to make these relationships clear in your code.
6. Also, try to make your clown flexible. For example, suppose your boss at Pixar says that the head needs to be bigger, flatter, wider, or whatever: what needs to be changed in your code? Try to make it easy to adjust things like this, either by coding or documentation.

## Model Solution

Here is a model clown solution.

I give you this example to clarify what I'm looking for. I expect that you will not try to reverse-engineer the solution. I have made it difficult (so you won't accidentally see the solution), but it would not be impossible. Please don't try.

## Submission and Security

Put your solution in a webpage with the following URL:

https://cs.wellesley.edu/~youraccount/cs307-assignments/hwk2.html

Please do not name it anything else, because I will look for this file to grade. That's all you need to do to submit.

## Math

(20 points)

Please do the problems in this shared Google doc. It is view-only, so please make your own copy of the Google doc, enter your answers into the document, and submit by sharing your copy with me (be sure that an email message is sent to me in this case). Please also include your name in the name of the Google doc. If you'd like to include a sketch, please use a drawing program if possible and insert the image in the document. If necessary, you can write out your solutions by hand and make an electronic picture (e.g. with your cell phone), but please be neat and use a dark pencil or a pen.