@text This set of kinemages is part of a talk about vectors and computer graphics presented by Bruce Cohen (http://www.cgl.ucsf.edu/home/bic) at the 2000 California Math Conference at Asilomar on December 2, 2000. Kinemage 1 is an introduction to using 3 dimensional coordinates in space. Key points are - using coordiates to draw lines - vectors with a tail at the orgin and head at (x y z) - using unit vectors i-hat, j-hat, k-hat Kinemage 2 looks at the magnitude of a 3D vector |c| = sqrt(c_1^2 + c_2^2 + c_3^2) Kinemage 3 looks at a parallelepiped defined by three vectors in space: a = i + 2j - k b = 2j + k c = i - 4j A geometric interpretation of the "triple product" c dot (a cross b) is demonstrated. Kinemage 4 relates to the "unit problem": given an axis vector, a-hat, and an angle, theta, create a function that maps a input vector, x, to its theta-rotation (y) about a-hat. @kinemage 1 @caption An introduction to coordinates, vectors and computer graphics @zoom 1.00 @zslab 200 @ztran 0 @center 0.000 0.000 0.000 @matrix 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 @2viewid { Rotation ove} @2zoom 1.00 @2zslab 200 @2ztran 0 @2center 0.000 0.000 0.000 @2matrix 0.999990 0.004540 -0.001500 -0.001100 0.523600 0.851970 0.004660 -0.851950 0.523590 @3viewid {rot z} @3zoom 1.00 @3zslab 200 @3ztran 0 @3center 0.000 0.000 0.000 @3matrix 0.777573 0.628793 0.000000 -0.628793 0.777573 0.000000 0.000000 0.000000 1.000000 @4viewid {rot x} @4zoom 1.00 @4zslab 200 @4ztran 0 @4center 0.000 0.000 0.000 @4matrix 1.0 0.0 0.0 0.0 0.777573 0.628793 0.0 -0.628793 0.777573 @5viewid {rot y} @5zoom 1.00 @5zslab 200 @5ztran 0 @5center 0.000 0.000 0.000 @5matrix 0.777573 0.0 0.628793 0.0 1.0 0.0 -0.628793 0.0 0.777573 @group {axes} @vectorlist {x-y-z axis} color= white nobutton {-2 0 0 }P U -2.000 0.000 0.000 {2 0 0 }U 2.000 0.000 0.000 {0 -2 0 }P U 0.000 -2.000 0.000 {0 2 0 }U 0.000 2.000 0.000 {0 0 -2 }P U 0.000 0.000 -2.000 {0 0 2 }U 0.000 0.000 2.000 @subgroup {labels} off @labellist {x-axis} color= white nobutton {x-axis}2.000 0.000 0.000 @labellist {y-axis} color= white nobutton {y-axis}0.000 2.500 0.000 @labellist {z-axis} color= white nobutton {z-axis}0.000 0.000 2.500 @group {box} off @vectorlist {} color = blue nobutton {a a a} P 1.0 1.0 1.0 {a -a a} L 1.0 -1.0 1.0 {-a -a a} L -1.0 -1.0 1.0 {-a a a} L -1.0 1.0 1.0 {a a a} L 1.0 1.0 1.0 @vectorlist {} color = red nobutton {a a -a} P 1.0 1.0 -1.0 {a -a -a} L 1.0 -1.0 -1.0 {-a -a -a} L -1.0 -1.0 -1.0 {-a a -a} L -1.0 1.0 -1.0 {a a -a} L 1.0 1.0 -1.0 @vectorlist {} color = yellow nobutton {a a a} P 1.0 1.0 1.0 {a a -a} L 1.0 1.0 -1.0 {a -a a} P 1.0 -1.0 1.0 {a -a -a} L 1.0 -1.0 -1.0 @vectorlist {} color = green nobutton {-a a a} P -1.0 1.0 1.0 {-a a -a} L -1.0 1.0 -1.0 {-a -a a} P -1.0 -1.0 1.0 {-a -a -a} L -1.0 -1.0 -1.0 @group {diag} @vectorlist {} color=blue P 0.0 0.0 0.0 L 1.0 1.0 1.0 @group {i-j-k hats} off @vectorlist {i-j-k hats} color= white nobutton {0 0 0 }P U 0.000 0.000 0.000 {i-hat}U 1.000 0.000 0.000 P 0 0 0 {j-hat} 0 1 0 P 0 0 0 {k-hat} 0 0 1 @subgroup {labels} off @labellist {x-axis} color= white nobutton {i-hat}1.000 0.000 0.000 @labellist {j-hat} color= white nobutton {j-hat}0.000 1.2500 0.000 @labellist {k-hat} color= white nobutton {k-hat}0.000 0.000 1.2500 @group {coordinate points} @vectorlist color= white nobutton P -2 -2 -2 -2 -2 -2 P -2 -2 -1 -2 -2 -1 P -2 -2 0 -2 -2 0 P -2 -2 1 -2 -2 1 P -2 -2 2 -2 -2 2 P -2 -1 -2 -2 -1 -2 P -2 -1 -1 -2 -1 -1 P -2 -1 0 -2 -1 0 P -2 -1 1 -2 -1 1 P -2 -1 2 -2 -1 2 P -2 0 -2 -2 0 -2 P -2 0 -1 -2 0 -1 P -2 0 0 -2 0 0 P -2 0 1 -2 0 1 P -2 0 2 -2 0 2 P -2 1 -2 -2 1 -2 P -2 1 -1 -2 1 -1 P -2 1 0 -2 1 0 P -2 1 1 -2 1 1 P -2 1 2 -2 1 2 P -2 2 -2 -2 2 -2 P -2 2 -1 -2 2 -1 P -2 2 0 -2 2 0 P -2 2 1 -2 2 1 P -2 2 2 -2 2 2 P -1 -2 -2 -1 -2 -2 P -1 -2 -1 -1 -2 -1 P -1 -2 0 -1 -2 0 P -1 -2 1 -1 -2 1 P -1 -2 2 -1 -2 2 P -1 -1 -2 -1 -1 -2 P -1 -1 -1 -1 -1 -1 P -1 -1 0 -1 -1 0 P -1 -1 1 -1 -1 1 P -1 -1 2 -1 -1 2 P -1 0 -2 -1 0 -2 P -1 0 -1 -1 0 -1 P -1 0 0 -1 0 0 P -1 0 1 -1 0 1 P -1 0 2 -1 0 2 P -1 1 -2 -1 1 -2 P -1 1 -1 -1 1 -1 P -1 1 0 -1 1 0 P -1 1 1 -1 1 1 P -1 1 2 -1 1 2 P -1 2 -2 -1 2 -2 P -1 2 -1 -1 2 -1 P -1 2 0 -1 2 0 P -1 2 1 -1 2 1 P -1 2 2 -1 2 2 P 0 -2 -2 0 -2 -2 P 0 -2 -1 0 -2 -1 P 0 -2 0 0 -2 0 P 0 -2 1 0 -2 1 P 0 -2 2 0 -2 2 P 0 -1 -2 0 -1 -2 P 0 -1 -1 0 -1 -1 P 0 -1 0 0 -1 0 P 0 -1 1 0 -1 1 P 0 -1 2 0 -1 2 P 0 0 -2 0 0 -2 P 0 0 -1 0 0 -1 P 0 0 0 0 0 0 P 0 0 1 0 0 1 P 0 0 2 0 0 2 P 0 1 -2 0 1 -2 P 0 1 -1 0 1 -1 P 0 1 0 0 1 0 P 0 1 1 0 1 1 P 0 1 2 0 1 2 P 0 2 -2 0 2 -2 P 0 2 -1 0 2 -1 P 0 2 0 0 2 0 P 0 2 1 0 2 1 P 0 2 2 0 2 2 P 1 -2 -2 1 -2 -2 P 1 -2 -1 1 -2 -1 P 1 -2 0 1 -2 0 P 1 -2 1 1 -2 1 P 1 -2 2 1 -2 2 P 1 -1 -2 1 -1 -2 P 1 -1 -1 1 -1 -1 P 1 -1 0 1 -1 0 P 1 -1 1 1 -1 1 P 1 -1 2 1 -1 2 P 1 0 -2 1 0 -2 P 1 0 -1 1 0 -1 P 1 0 0 1 0 0 P 1 0 1 1 0 1 P 1 0 2 1 0 2 P 1 1 -2 1 1 -2 P 1 1 -1 1 1 -1 P 1 1 0 1 1 0 P 1 1 1 1 1 1 P 1 1 2 1 1 2 P 1 2 -2 1 2 -2 P 1 2 -1 1 2 -1 P 1 2 0 1 2 0 P 1 2 1 1 2 1 P 1 2 2 1 2 2 P 2 -2 -2 2 -2 -2 P 2 -2 -1 2 -2 -1 P 2 -2 0 2 -2 0 P 2 -2 1 2 -2 1 P 2 -2 2 2 -2 2 P 2 -1 -2 2 -1 -2 P 2 -1 -1 2 -1 -1 P 2 -1 0 2 -1 0 P 2 -1 1 2 -1 1 P 2 -1 2 2 -1 2 P 2 0 -2 2 0 -2 P 2 0 -1 2 0 -1 P 2 0 0 2 0 0 P 2 0 1 2 0 1 P 2 0 2 2 0 2 P 2 1 -2 2 1 -2 P 2 1 -1 2 1 -1 P 2 1 0 2 1 0 P 2 1 1 2 1 1 P 2 1 2 2 1 2 P 2 2 -2 2 2 -2 P 2 2 -1 2 2 -1 P 2 2 0 2 2 0 P 2 2 1 2 2 1 P 2 2 2 2 2 2 @kinemage 2 @caption Magnitude of vector v explored. @zoom 1.00 @zslab 200 @ztran 0 @center 0.000 0.000 0.000 @matrix 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 @2viewid { Rotation ove} @2zoom 1.00 @2zslab 200 @2ztran 0 @2center 0.000 0.000 0.000 @2matrix 0.999990 0.004540 -0.001500 -0.001100 0.523600 0.851970 0.004660 -0.851950 0.523590 @3viewid {rot z} @3zoom 1.00 @3zslab 200 @3ztran 0 @3center 0.000 0.000 0.000 @3matrix 0.777573 0.628793 0.000000 -0.628793 0.777573 0.000000 0.000000 0.000000 1.000000 @4viewid {rot x} @4zoom 1.00 @4zslab 200 @4ztran 0 @4center 0.000 0.000 0.000 @4matrix 1.0 0.0 0.0 0.0 0.777573 0.628793 0.0 -0.628793 0.777573 @5viewid {rot y} @5zoom 1.00 @5zslab 200 @5ztran 0 @5center 0.000 0.000 0.000 @5matrix 0.777573 0.0 0.628793 0.0 1.0 0.0 -0.628793 0.0 0.777573 @group {axes} off @vectorlist {x-y-z axis} color= white nobutton {-3 0 0 }P U -3.000 0.000 0.000 {3 0 0 }U 3.000 0.000 0.000 {0 -3 0 }P U 0.000 -3.000 0.000 {0 3 0 }U 0.000 3.000 0.000 {0 0 -3 }P U 0.000 0.000 -3.000 {0 0 3 }U 0.000 0.000 3.000 @subgroup {labels} off @labellist {x-axis} color= white nobutton {x-axis}3.000 0.000 0.000 @labellist {y-axis} color= white nobutton {y-axis}0.000 3.500 0.000 @labellist {z-axis} color= white nobutton {z-axis}0.000 0.000 3.500 @group {magnitude} @vectorlist {v} color = blue P 0 0 0 {v }L 1 2 3 @vectorlist {P_ik(v)} color = green off P 0 0 0 {P_ik(v)} L 1 0 3 P 0 0 3 1 0 3 P 0 0 0 0 0 3 @vectorlist {P_j(v)} color = red off P 1 0 3 {P_j(v)} L 1 2 3 @group {i-j-k hats} off @vectorlist {i-j-k hats} color= white nobutton {0 0 0 }P U 0.000 0.000 0.000 {i-hat}U 1.000 0.000 0.000 P 0 0 0 {j-hat} 0 1 0 P 0 0 0 {k-hat} 0 0 1 @subgroup {labels} off @labellist {x-axis} color= white nobutton {i-hat}1.000 0.000 0.000 @labellist {j-hat} color= white nobutton {j-hat}0.000 1.2500 0.000 @labellist {k-hat} color= white nobutton {k-hat}0.000 0.000 1.2500 @kinemage 3 @caption This is a parallelepiped defined by a = i + 2j - k b = 2j + k c = i - 4j @zoom 1.00 @zslab 200 @ztran 0 @center 0.000 0.000 0.000 @matrix 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 @2viewid { Rotation ove} @2zoom 1.00 @2zslab 200 @2ztran 0 @2center 0.000 0.000 0.000 @2matrix 0.999990 0.004540 -0.001500 -0.001100 0.523600 0.851970 0.004660 -0.851950 0.523590 @3viewid {rot z} @3zoom 1.00 @3zslab 200 @3ztran 0 @3center 0.000 0.000 0.000 @3matrix 0.777573 0.628793 0.000000 -0.628793 0.777573 0.000000 0.000000 0.000000 1.000000 @4viewid {rot x} @4zoom 1.00 @4zslab 200 @4ztran 0 @4center 0.000 0.000 0.000 @4matrix 1.0 0.0 0.0 0.0 0.777573 0.628793 0.0 -0.628793 0.777573 @5viewid {rot y} @5zoom 1.00 @5zslab 200 @5ztran 0 @5center 0.000 0.000 0.000 @5matrix 0.777573 0.0 0.628793 0.0 1.0 0.0 -0.628793 0.0 0.777573 @group {parallelepiped} @vectorlist {a-b-c} color = blue P 0 0 0 {a} 1 2 -1 P 0 0 0 {b} 0 2 1 P 0 0 0 {c} 1 -4 0 @labellist {labels} color= white off {a} 1 2 -1 {b} 0 2 1 {c} 1 -4 0 @vectorlist {completion} color = red off P 1 2 -1 {a, +b} 1 4 0 P 1 2 -1 {a, +c} 2 -2 -1 P 0 2 1 {b, +a} 1 4 0 P 0 2 1 {b, +c} 1 -2 1 P 1 -4 0 {c, +a} 2 -2 -1 P 1 -4 0 {c, +b} 1 -2 1 P 1 4 0 {a+b, +c} 2 0 0 P 1 -2 1 {b+c, +a} 2 0 0 P 2 -2 -1 {a+c, +b} 2 0 0 @group {other vectors} @vectorlist {axb} color=white off P 0 0 0 {axb} 4 -1 2 @vectorlist {P_axb(c)} color=green off P 0 0 0 {P_axb(c)} 1.5238 -.38 .7619 @group {i-j-k hats} off @vectorlist {i-j-k hats} color= white nobutton {0 0 0 }P U 0.000 0.000 0.000 {i-hat}U 1.000 0.000 0.000 P 0 0 0 {j-hat} 0 1 0 P 0 0 0 {k-hat} 0 0 1 @subgroup {labels} off @labellist {x-axis} color= white nobutton {i-hat}1.000 0.000 0.000 @labellist {j-hat} color= white nobutton {j-hat}0.000 1.2500 0.000 @labellist {k-hat} color= white nobutton {k-hat}0.000 0.000 1.2500 @kinemage 4 @caption Given an arbitrary unit vector (in this case the blue vector a) and an angle (call it theta), we wish to rotate some vector (in this case the green vector v) around vector a through angle theta. The red vector y is the "image" of this rotation. Use view 2 of the views menu to have vector a point out of the screen. Dragging the mouse along the top sixth of the screen will perform the modeled rotation. @zoom 1.00 @zslab 200 @ztran 0 @center 0.000 0.000 0.000 @matrix 0.568624 -0.080354 0.818665 0.734002 0.498856 -0.460855 -0.371365 0.862952 0.342640 @2viewid {axis out} @2zoom 1.00 @2zslab 200 @2ztran 0 @2center 0.000 0.000 0.000 @2matrix 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 @group {vectors} @vectorlist {a} color = blue P 0.0 0.0 0.0 0.0 0.0 4.0 @vectorlist {x} color = green P 0.0 0.0 0.0 3.0 -1.0 2.0 @vectorlist {y} color = red P 0.0 0.0 0.0 3.0 1.0 2.0 @subgroup {labels} off @labellist {a} color= white nobutton {a} 0.0 0.0 4.0 @labellist {x} color= white nobutton {x} 3.0 -1.0 2.0 @labellist {y} color= white nobutton {y} 3.0 1.0 2.0 @group {components} @vectorlist {x-par} color = green off P 0.0 0.0 0.0 0.0 0.0 2.0 @vectorlist {x-perp} color = green off P 0.0 0.0 0.0 3.0 -1.0 0.0 @vectorlist {y-par} color = red off P 0.0 0.0 0.0 0.0 0.0 2.0 @vectorlist {y-perp} color = red off P 0.0 0.0 0.0 3.0 1.0 0.0 @subgroup {labels} off @labellist {x-perp} color= white nobutton {x-perp} 3.0 -1.0 0.0 @labellist {y-perp} color= white nobutton {y-perp} 3.0 1.0 0.0 @group {i-j-k hats} off @vectorlist {i-j-k hats} color= white nobutton P U 0.000 0.000 0.000 {4 0 0 }U 4.000 0.000 0.000 P U 0.000 0.000 0.000 {0 4 0 }U 0.000 4.000 0.000 P U 0.000 0.000 0.000 {0 0 4 }U 0.000 0.000 4.000 @subgroup {labels} off @labellist {i-hat} color= white nobutton {i-hat}4.000 0.000 0.000 @labellist {j-hat} color= white nobutton {j-hat}0.000 4.500 0.000 @labellist {k-hat} color= white nobutton {k-hat}0.000 0.000 4.500