Homework Week 2

animation experiment:

Based on the work of Robin Roades, make an animation with still images. If you can, cross fade between them. Can you tell a story with just a few frames? Think especially of using people and or mixing scales. Don't doctor the images, and keep the camera stationary.

I'm not sure if my animation really tells a story, unless you consider dessert drum machine an essential narrative.


a) fastest non moving speed

find the fastest speed for the square to move across the screen and have the motion be imperceptible. Time how long it takes for the square to move across the screen and measure the physical (not pixel) distance. What is this speed in inches/second ? for kicks, What is it in in mph?

For this one, I just kept modifying the pct until I found the smallest amount that was still perceptable to me. Then I went one one-millionth slower. I could probably have finer-tuned it by going another decimal place, but I had to stop somewhere. The number I arrived at for pct was 0.000002f. I haven't timed it yet. It's crazy slow. I need to start it and then go get a pizza or something.


b) fastest still perceptible speed

find the fastest speed for the square to move across the screen and have the motion be still perceived as continuous (not discrete jumps). Time how long it takes for the square to move across the screen and measure the physical (not pixel) distance. What is this speed in inches/second ? What is this rate in mph?

I basically did the opposite for this one as what I did for the last one. In both cases I set the shaper value from the example code to 1, so there would be no ramping up or down. The pct value I arrived at was 0.02f, however the speed at which you can see continues motion depends somewhat on how long the animation is, how fast you follow the square with your eyes and maybe even what color you make the square. The speed is about 9 inches per second or .511 MPH. I left my math commented out in the code if you want to check it.


c) click to change pta and ptb

make an application where whenever you click, you change either the ptA position or the ptB position to the mouse position, alternating every time you click.

I tried to do this using a boolean that flipped between assigning Point A and Point B but it didn't work for some reason. The rectangle would move to the mouse X/Y but it wouldn't keep moving between points A and B. I tried another approach and used a counter with the modulus operator to determine when it was odd or even. That worked right away!


d) shaper controlls something else besides position

Make the shape code control another property of the object, such as its size or color. Make the nicest composition that you can. Try to make it elegant and organic.

(for the xeno code)

For this one, I tried for awhile to have the shaper change the color. It was a bit too complicated of a starting point for me, so I decided to just alter the Alpha value. Then I decided several squares would look way cooler than 1, so I made an array of rectangle objects and an array of corresponding X and Y values so I could assign them aesthetically pleasing directions of travel. I then went back and tried to add in an array of colors, for some reason I couldn't get it to work. I kept commenting out my code and I discovered something weird. For some reason when I declare a data variable in rectangle.h file, it draws a renegade rectangle off to the left of the screen. I was able to add a bunch for changing the alpha, but for some reason the code refuses to let me add any new ones. I showed Manuel and he was equally perplexed. It doesn't matter If I'm using the variable in the test.cpp or not and it doesn;t matter what I call it or what data type it is. It's really strange.


e) multiple xenos

make a series of xeno objects which follow the mouse, each at different rates. give them slightly different colors so that you can perceive them as independent objects. you will have to modify the rectangle object so that they can have unique colors.

For this one, I created 3 instances of myRectangle. I also created 3 xenoToPoint functions and three catchUpSpeeds in the rectangle.cpp file. I then made each catchUpSpeed a little slower than the previous one, so my rectangles would all follow the mouse at different speeds. It occurred to me that I could probably make an array of rectangles, but I just left it as it is. I actually did the previous part of the homework, where I changed the shaper control, after this one. For that one, I did use the idea of making an array of rectangles.


bonus homeworks

f) multiple xenos trail

If you are really feeling like showing off, make an array of xeno objects where the first element follows the mouse, the second element follows the first, the third follows the second, etc.

I made a weird little xeno array example. I was actually trying to code something that would look like smoke, with an array of dissapating circles that would trail off from the mouse. Instead, I got this array of circles that slowly grow larger and fade out, but stay connected like a giant snake. It's a pretty neat effect, but back to the drawing board as far as the smoke thing goes.


g) shapers via penner

in class, we used powf to shape a linear signal. there are more advanced ways to do this (for easing and out, and for snap to, etc). Some of these have been collected by robert penner as "easing equations". some folks have ported this from AS to c++, you can find them here & here try to hook them up and make a compelling composition with linear and nonlinear animating elements.