{VERSION 2 3 "APPLE_68K_MAC" "2.3" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT -1 61 "Looking a a Three Dimens ional World with Two Dimensional Eyes" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 117 "The following cell illustrates how M aple works with vectors, scalar multiplication, the dot product, and m agnitude. " }{TEXT 256 16 "Evaluate it now." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "u := [1, 2, 3]:" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 15 "v := [6, 3, 1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "evalm(4 * u);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "dotprod(u, v); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "magnitude := x -> sqrt(dotprod( x, x)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "magnitude(u);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "magnitude([1, 2, 3, 4, 5]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 169 "The foll owing cell illustrates how Maple can be used to find the point where t wo lines \"intersect\" even when they don't exactly intersect because \+ of measurement error. " }{TEXT 257 16 "Evaluate it now." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "View := [0, 0, 105]: # Viewpoint" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Ground := [3.20, 4.20, 0]: # Apparent location on ground " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "Light := [-105, 0, 105]: \+ # Light source" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "Shadow := [8.3, \+ 4.3, 0]: # Shadow" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "# The next lines define the functio n f(s, t)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 131 "P := (s, t) -> evalm(t * Light) + evalm((1 - t) * Sh adow) -\n(evalm(s * View) + evalm((1 - s) * Ground)): \+ " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "F := (s, t) -> dotprod(P(s, t), P(s, t)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "Ft := (s, t) -> diff(F(s, t), t):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "Fs := (s, t) -> diff(F(s, t), s):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "fsolve(\{Ft(s, t) = 0, Fs(s, t) = 0\}, \{s, t\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 135 "subs(\", evalm (0.5 * (t * Light + (1 - t) * Shadow +\n s * View \+ + (1 - s) * Ground))); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 168 "The next cell defines the points and rods for the pyramid used as an example i n this module. Then it draws the picture taken by a camera from a par ticular viewpoint. " }{TEXT 258 245 "Evaluate the next cell now and t hen look at this pyramid from various different points-of-view. Then use the same ideas to draw pictures taken by a camera looking at your TinkerToy house from various points-of-view. Use your own measuremen ts." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "with(plottools):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(plots):\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "theta := Pi/ 8: # Angle from x-axis to viewpoint" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "radius := 100: # Distance along ground to v iewpoint" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "height := 75: \+ # Height of viewpoint" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "# The three parameters above define the direction of the viewpoint" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "aa := [-1, 0, 0]:" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 18 "bb := [ 1, 0, 0]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "cc := [ 0, 1, 0]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "dd := [ 0, -1, 0]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "tt := [ 0 , 0, 1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Points := \{aa, bb, cc, dd, tt\}: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 103 "Rods := \+ \{\{aa, cc\}, \{cc, bb\}, \{bb, dd\}, \{dd, aa\},\n \{aa, tt \}, \{bb, tt\}, \{cc, tt\}, \{dd, tt\}\}: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "u := [-sin(thet a), cos(theta), 0]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 149 "v := [-heig ht * cos(theta)/sqrt(height^2 + radius^2),\n -height * sin(theta) /sqrt(height^2 + radius^2),\n radius/sqrt(height^2 + radius^2)]: \n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "linelist := \{\}:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 284 "for \+ i from 1 to nops(Rods) do\n linelist := linelist union \{line([dotp rod(u, Rods[i][1]),\n dotprod(v, \+ Rods[i][1])],\n [dotprod(u, Rods[i ][2]),\n dotprod(v, Rods[i][2])]) \}\nod:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "display(linelist, color=black, scaling=CONSTRAINED, a xes=NONE);" }}}}{MARK "2 1 0" 36 }{VIEWOPTS 1 1 0 1 1 1803 }