(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 7.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 111401, 3642] NotebookOptionsPosition[ 90213, 3227] NotebookOutlinePosition[ 106673, 3525] CellTagsIndexPosition[ 106630, 3522] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["Case Study: Computer Graphics in Automotive Design", "Title", PageWidth->PaperWidth], Cell[TextData[{ "This case study investigates how three-dimensional images are rendered \ effectively in two dimensions. This type of operation is very important in \ automotive design, for it allows engineers to experiment with images on a \ computer screen instead of using a three-dimensional model of the automobile. \ One way to render a three-dimensional image in two dimensions is called a ", StyleBox["perspective", FontWeight->"Bold"], " ", StyleBox["projection", FontWeight->"Bold"], ", which is studied in this case study. You should read Section 2.7 before \ attempting this case study.\n\nThe data for this case study was derived from \ measurements made on the author's 1983 Toyota Corolla; all coordinates are \ measured in feet. The origin is placed at the center of the car. ", StyleBox["\n", FontSize->10] }], "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[TextData[{ "Data Points: (-6.5,-2,-2.5), (-6.5,-2,2.5), (-6.5,.5,2.5), (-6.5,.5,-2.5), \ (-2.5,.5,-2.5), (-2.5,.5,2.5), \n (-.75,2,-2.5), \ (-.75,2,2.5), (3.25,2,-2.5), (3.25,2,2.5), (4.5,.5,-2.5), (4.5,.5,2.5), \n \ (6.5,.5,-2.5), (6.5,.5,2.5), (6.5,-2,2.5), (6.5,-2,-2.5)\n\n\ These data points are collected in a data matrix D: each column contains the \ x, y, and z coordinates of a particular data point. A fourth row containing \ all ones is attached to the matrix since homogeneous coordinates are being \ used.\n\n", StyleBox[Cell[BoxData[ TagBox[ RowBox[{"D", "=", RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "6.5`"}], RowBox[{"-", "6.5`"}], RowBox[{"-", "6.5`"}], RowBox[{"-", "6.5`"}], RowBox[{"-", "2.5`"}], RowBox[{"-", "2.5`"}], RowBox[{"-", "0.75`"}], RowBox[{"-", "0.75`"}], "3.25`", "3.25`", "4.5`", "4.5`", "6.5`", "6.5`", "6.5`", "6.5`"}, { RowBox[{"-", "2"}], RowBox[{"-", "2"}], "0.5`", "0.5`", "0.5`", "0.5`", "2", "2", "2", "2", "0.5`", "0.5`", "0.5`", "0.5`", RowBox[{"-", "2"}], RowBox[{"-", "2"}]}, { RowBox[{"-", "2.5`"}], "2.5`", "2.5`", RowBox[{"-", "2.5`"}], RowBox[{"-", "2.5`"}], "2.5`", RowBox[{"-", "2.5`"}], "2.5`", RowBox[{"-", "2.5`"}], "2.5`", RowBox[{"-", "2.5`"}], "2.5`", RowBox[{"-", "2.5`"}], "2.5`", "2.5`", RowBox[{"-", "2.5`"}]}, {"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"} }], "\[NoBreak]", ")"}]}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]], "SmallText", FontFamily->"Arial", FontSize->10], "SmallText"], "\n\nHere is the data matrix D in ", StyleBox["Mathematica", FontSlant->"Italic"], " form. Since D is a protected variable, lower case d is used instead. " }], "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[BoxData[ RowBox[{ RowBox[{"d", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "6.5"}], ",", RowBox[{"-", "6.5"}], ",", RowBox[{"-", "6.5"}], ",", RowBox[{"-", "6.5"}], ",", RowBox[{"-", "2.5"}], ",", RowBox[{"-", "2.5"}], ",", RowBox[{"-", ".75"}], ",", RowBox[{"-", ".75"}], ",", "3.25", ",", "3.25", ",", "4.5", ",", "4.5", ",", "6.5", ",", "6.5", ",", "6.5", ",", "6.5"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", RowBox[{"-", "2"}], ",", ".5", ",", ".5", ",", ".5", ",", ".5", ",", "2", ",", "2", ",", "2", ",", "2", ",", ".5", ",", ".5", ",", ".5", ",", ".5", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2.5"}], ",", "2.5", ",", "2.5", ",", RowBox[{"-", "2.5"}], ",", RowBox[{"-", "2.5"}], ",", "2.5", ",", RowBox[{"-", "2.5"}], ",", "2.5", ",", RowBox[{"-", "2.5"}], ",", "2.5", ",", RowBox[{"-", "2.5"}], ",", "2.5", ",", RowBox[{"-", "2.5"}], " ", ",", "2.5", ",", "2.5", ",", RowBox[{"-", "2.5"}]}], "}"}], ",", RowBox[{"{", RowBox[{ "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["In addition to the data points, how these data points are to be \ connected must be known. A table listing which points connect to which \ others may be supplied. Another way to record which points connect to which \ others is to use an ", FontFamily->"Arial"], StyleBox["adjacency", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[" ", FontFamily->"Arial"], StyleBox["matrix", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[". This matrix consists only of 0's and 1's; the", FontFamily->"Arial"], StyleBox[" (i,j)", "InlineFormula", FontFamily->"Arial"], StyleBox[" entry in the matrix is a 1 if points i and j are connected. \ Figure 1 shows both the table of connections and the adjacency matrix.\n", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[GridBox[{ {GridBox[{ { RowBox[{"Pt", "."}], "Coordinates", RowBox[{"Connects", " ", "to"}]}, {"1", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", "6.5"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], StyleBox[ RowBox[{" ", RowBox[{"2", ",", "4", ",", "16"}]}], FontFamily->"Arial"]}, {"2", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", "6.5"}], ",", RowBox[{"-", "2"}], ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"1", ",", "3", ",", "15"}]}, {"3", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", "6.5"}], ",", ".5", ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"2", ",", "4", ",", "6"}]}, {"4", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", "6.5"}], ",", ".5", ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"1", ",", "3", ",", "5"}]}, {"5", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", "2.5"}], ",", ".5", ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"4", ",", "6", ",", "7"}]}, {"6", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", "2.5"}], ",", ".5", ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"3", ",", "5", ",", "8"}]}, {"7", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", ".75"}], ",", "2", ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"5", ",", "8", ",", "9"}]}, {"8", StyleBox[ RowBox[{"(", RowBox[{ RowBox[{"-", ".75"}], ",", "2", ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"6", ",", "7", ",", "10"}]}, {"9", StyleBox[ RowBox[{"(", RowBox[{"3.25", ",", "2", ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"7", ",", "10", ",", "11"}]}, {"10", StyleBox[ RowBox[{"(", RowBox[{"3.25", ",", "2", ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"8", ",", "9", ",", "12"}]}, {"11", StyleBox[ RowBox[{"(", RowBox[{"4.5", ",", ".5", ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"9", ",", "12", ",", "13"}]}, {"12", StyleBox[ RowBox[{"(", RowBox[{"4.5", ",", ".5", ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"10", ",", "11", ",", "14"}]}, {"13", StyleBox[ RowBox[{"(", RowBox[{"6.5", ",", ".5", ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"11", ",", "14", ",", "16"}]}, {"14", StyleBox[ RowBox[{"(", RowBox[{"6.5", ",", ".5", ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"12", ",", "13", ",", "15"}]}, {"15", StyleBox[ RowBox[{"(", RowBox[{"6.5", ",", RowBox[{"-", "2"}], ",", "2.5"}], ")"}], FontFamily->"Arial"], RowBox[{"2", ",", "14", ",", "16"}]}, {"16", StyleBox[ RowBox[{"(", RowBox[{"6.5", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "2.5"}]}], ")"}], FontFamily->"Arial"], RowBox[{"1", ",", "13", ",", "15"}]} }, GridBoxDividers->{ "Columns" -> {{True}}, "ColumnsIndexed" -> {}, "Rows" -> {{True}}, "RowsIndexed" -> {}}], RowBox[{" ", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1"}, {"1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0"}, {"0", "1", "0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}, {"1", "0", "1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "1", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "1", "0", "1", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "1", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "1", "0", "0", "1", "1", "0", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "1", "1", "0", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "1", "0", "0"}, {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "1"}, {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "1", "0"}, {"0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1"}, {"1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "1", "0"} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]}]} }], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center, FontSize->10], Cell["\<\ Figure 1: Connection of Data Points: Table and Adjacency Matrix\ \>", "Text", PageWidth->PaperWidth, TextAlignment->Center, FontFamily->"Arial"], Cell[TextData[{ "The adjacency matrix will be used later in the lab, so here it is given in ", StyleBox["Mathematica", FontSlant->"Italic"], " form:" }], "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[BoxData[ RowBox[{ RowBox[{"A", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "1", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "1", ",", "0", ",", "1", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "1", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "1", ",", "0", ",", "1", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "1", ",", "0", ",", "1"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0", ",", "1", ",", "0"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "1"}], "}"}], ",", "\[IndentingNewLine]", " ", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[{ " Connecting the data points as given in Figure 1, results in the picture in \ Figure 2, which ", StyleBox["Mathematica", FontSlant->"Italic"], " has rendered as a two-dimensional image." }], "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .43055 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics3D %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0 1 -0.279884 1 [ [.85142 -0.01248 -6.32966 -9 ] [.85142 -0.01248 5.67034 0 ] [.5 -0.0125 -3 -9 ] [.5 -0.0125 3 0 ] [.14858 -0.01248 -2.83517 -9 ] [.14858 -0.01248 3.16483 0 ] [.5 -0.075 -5 -12.875 ] [.5 -0.075 5 0 ] [.99357 .00592 0 -4.5 ] [.99357 .00592 12 4.5 ] [.99806 .06569 0 -4.5 ] [.99806 .06569 12 4.5 ] [1.00262 .12659 0 -4.5 ] [1.00262 .12659 6 4.5 ] [1.00728 .18864 0 -4.5 ] [1.00728 .18864 6 4.5 ] [1.01202 .25189 0 -4.5 ] [1.01202 .25189 6 4.5 ] [1.06512 .12659 0 -6.4375 ] [1.06512 .12659 10 6.4375 ] [-0.00731 .28037 -12 -4.5 ] [-0.00731 .28037 0 4.5 ] [.00861 .34805 -6 -4.5 ] [.00861 .34805 0 4.5 ] [.02353 .41152 -6 -4.5 ] [.02353 .41152 0 4.5 ] [-0.05389 .34805 -10 -6.4375 ] [-0.05389 .34805 0 6.4375 ] [ 0 0 0 0 ] [ 1 .43055 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 g .25 Mabswid [ ] 0 setdash .98063 0 m .01937 0 L s .85211 0 m .85245 .00624 L s [(-5)] .85142 -0.01248 .05494 1 Mshowa .5 0 m .5 .00625 L s [(0)] .5 -0.0125 0 1 Mshowa .14789 0 m .14755 .00624 L s [(5)] .14858 -0.01248 -0.05494 1 Mshowa .125 Mabswid .78169 0 m .78185 .00375 L s .71127 0 m .71139 .00375 L s .64084 0 m .64093 .00375 L s .57042 0 m .57046 .00375 L s .42958 0 m .42954 .00375 L s .35916 0 m .35907 .00375 L s .28873 0 m .28861 .00375 L s .21831 0 m .21815 .00375 L s .92253 0 m .92278 .00374 L s .07747 0 m .07722 .00374 L s gsave .5 -0.075 -66 -16.875 Mabsadd m 1 1 Mabs scale currentpoint translate 0 20.875 translate 1 -1 scale 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor (x) show 69.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 1.000 setlinewidth grestore .25 Mabswid .98063 0 m 1 .25828 L s .98107 .00592 m .97482 .00592 L s [(-2)] .99357 .00592 -1 0 Mshowa .98556 .06569 m .97931 .06569 L s [(-1)] .99806 .06569 -1 0 Mshowa .99012 .12659 m .98387 .12659 L s [(0)] 1.00262 .12659 -1 0 Mshowa .99478 .18864 m .98853 .18864 L s [(1)] 1.00728 .18864 -1 0 Mshowa .99952 .25189 m .99327 .25189 L s [(2)] 1.01202 .25189 -1 0 Mshowa .125 Mabswid .98196 .01778 m .97821 .01778 L s .98286 .02969 m .97911 .02969 L s .98375 .04165 m .98 .04165 L s .98465 .05365 m .9809 .05365 L s .98646 .07778 m .98271 .07778 L s .98737 .08991 m .98362 .08991 L s .98829 .10209 m .98454 .10209 L s .9892 .11432 m .98545 .11432 L s .99105 .13891 m .9873 .13891 L s .99197 .15127 m .98822 .15127 L s .99291 .16368 m .98916 .16368 L s .99384 .17614 m .99009 .17614 L s .99572 .2012 m .99197 .2012 L s .99666 .2138 m .99291 .2138 L s .99761 .22645 m .99386 .22645 L s .99856 .23914 m .99481 .23914 L s gsave 1.06512 .12659 -61 -10.4375 Mabsadd m 1 1 Mabs scale currentpoint translate 0 20.875 translate 1 -1 scale 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor (y) show 69.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 1.000 setlinewidth grestore .25 Mabswid 0 .25828 m .04051 .43055 L s .00519 .28037 m .01144 .28037 L s [(-2)] -0.00731 .28037 1 0 Mshowa .02111 .34805 m .02736 .34805 L s [(0)] .00861 .34805 1 0 Mshowa .03603 .41152 m .04228 .41152 L s [(2)] .02353 .41152 1 0 Mshowa .125 Mabswid .00927 .29771 m .01302 .29771 L s .01328 .31476 m .01703 .31476 L s .01723 .33154 m .02098 .33154 L s .02493 .3643 m .02868 .3643 L s .02869 .38029 m .03244 .38029 L s .03239 .39603 m .03614 .39603 L s .00105 .26273 m .0048 .26273 L s .03962 .42677 m .04337 .42677 L s gsave -0.05389 .34805 -71 -10.4375 Mabsadd m 1 1 Mabs scale currentpoint translate 0 20.875 translate 1 -1 scale 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor (z) show 69.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 1.000 setlinewidth grestore 0 0 m 1 0 L 1 .43055 L 0 .43055 L closepath clip newpath .5 Mabswid .07687 .18782 m .04276 .01071 L s .06766 .33149 m .07687 .18782 L s .92313 .18782 m .07687 .18782 L s .92313 .18782 m .93234 .33149 L s .95724 .01071 m .92313 .18782 L s .03198 .16206 m .06766 .33149 L s .20068 .33149 m .06766 .33149 L s .17598 .16206 m .20068 .33149 L s .28097 .42074 m .20068 .33149 L s .66629 .33149 m .55055 .42074 L s .68001 .16206 m .66629 .33149 L s .93234 .33149 m .66629 .33149 L s .93234 .33149 m .96802 .16206 L s .26263 .25635 m .28097 .42074 L s .55055 .42074 m .28097 .42074 L s .55478 .25635 m .55055 .42074 L s .03198 .16206 m .04276 .01071 L s .95724 .01071 m .04276 .01071 L s .95724 .01071 m .96802 .16206 L s .17598 .16206 m .03198 .16206 L s .26263 .25635 m .17598 .16206 L s .68001 .16206 m .55478 .25635 L s .96802 .16206 m .68001 .16206 L s .55478 .25635 m .26263 .25635 L s .25 Mabswid .98063 0 m 1 .25828 L s .98107 .00592 m .97482 .00592 L s [(-2)] .99357 .00592 -1 0 Mshowa .98556 .06569 m .97931 .06569 L s [(-1)] .99806 .06569 -1 0 Mshowa .99012 .12659 m .98387 .12659 L s [(0)] 1.00262 .12659 -1 0 Mshowa .99478 .18864 m .98853 .18864 L s [(1)] 1.00728 .18864 -1 0 Mshowa .99952 .25189 m .99327 .25189 L s [(2)] 1.01202 .25189 -1 0 Mshowa .125 Mabswid .98196 .01778 m .97821 .01778 L s .98286 .02969 m .97911 .02969 L s .98375 .04165 m .98 .04165 L s .98465 .05365 m .9809 .05365 L s .98646 .07778 m .98271 .07778 L s .98737 .08991 m .98362 .08991 L s .98829 .10209 m .98454 .10209 L s .9892 .11432 m .98545 .11432 L s .99105 .13891 m .9873 .13891 L s .99197 .15127 m .98822 .15127 L s .99291 .16368 m .98916 .16368 L s .99384 .17614 m .99009 .17614 L s .99572 .2012 m .99197 .2012 L s .99666 .2138 m .99291 .2138 L s .99761 .22645 m .99386 .22645 L s .99856 .23914 m .99481 .23914 L s gsave 1.06512 .12659 -61 -10.4375 Mabsadd m 1 1 Mabs scale currentpoint translate 0 20.875 translate 1 -1 scale 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 63.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor (y) show 69.000 13.000 moveto %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10.000 scalefont [1 0 0 -1 0 0 ] makefont setfont 0.000 0.000 0.000 setrgbcolor 0.000 0.000 rmoveto 1.000 setlinewidth grestore % End of Graphics MathPictureEnd \ \>"], "Graphics", PageWidth->PaperWidth, TextAlignment->Center, ImageSize->{421, 181.125}, ImageMargins->{{61, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["CompressedBitmap", "\<\ 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 \ \>"], ImageRangeCache->{{{87.9375, 423.688}, {205.875, 62}} -> {-0.462585, \ 0.400556, 0.00302784, 0.00302784}}], Cell["Figure 2: The Toyota data points connected", "Text", PageWidth->PaperWidth, TextAlignment->Center, FontFamily->"Arial"], Cell[TextData[{ "How has ", StyleBox["Mathematica", FontSlant->"Italic"], " rendered the picture in Figure 2? The key is a ", StyleBox["perspective", FontWeight->"Bold"], " ", StyleBox["projection", FontWeight->"Bold"], ". A form of this projection is studied in the text on pages 163 and 164. \ In order to perform a perspective projection a ", StyleBox["center", FontWeight->"Bold"], " ", StyleBox["of", FontWeight->"Bold"], " ", StyleBox["projection", FontWeight->"Bold"], " (b,c,d) and a ", StyleBox["viewing", FontWeight->"Bold"], " ", StyleBox["plane", FontWeight->"Bold"], " must be identified. The center of projection is the position of the \ viewer's eye; the viewing plane is the plane onto which the image is \ projected. In the book, it is assumed that the center of projection has \ coordinates (0,0,d) and that the viewing plane is the xy plane. In what \ follows it is also assumed that the viewing plane is the xy plane, but any \ choice of center of projection (b,c,d) will be allowed.\n\nGiven the center \ of projection (b,c,d) and some data point (x,y,z), the point (x*,y*,0) in the \ xy plane which lies on the same line as (b,c,d) and (x,y,z) must be found; \ see Figure 6 on page 163 for a picture. The point (x*,y*) in two-dimensional \ space is then plotted. To find the coordinates x* and y*, the equation of \ the line through (b,c,d) and (x,y,z) must be calculated. As is done on page \ 53 of the text, let the vectors ", StyleBox["p", FontWeight->"Bold"], " and ", StyleBox["v", FontWeight->"Bold"], " be defined as follows:\n" }], "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["p", FontWeight->"Bold"], "=", RowBox[{"(", GridBox[{ {"b"}, {"c"}, {"d"} }], ")"}]}], ",", " ", RowBox[{ StyleBox["v", FontWeight->"Bold"], "=", RowBox[{ RowBox[{ RowBox[{"(", GridBox[{ {"x"}, {"y"}, {"z"} }], ")"}], "-", RowBox[{"(", GridBox[{ {"b"}, {"c"}, {"d"} }], ")"}]}], "=", RowBox[{"(", GridBox[{ { RowBox[{"x", "-", "b"}]}, { RowBox[{"y", "-", "c"}]}, { RowBox[{"z", "-", "d"}]} }], ")"}]}]}]}]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center, FontFamily->"Arial"], Cell[TextData[{ "The line through ", StyleBox["p", FontWeight->"Bold"], " parallel to ", StyleBox["v", FontWeight->"Bold"], " is needed. Its equation may be written as " }], "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[BoxData[ StyleBox[ RowBox[{ StyleBox["x", FontWeight->"Bold"], "=", RowBox[{ RowBox[{ StyleBox["p", FontWeight->"Bold"], StyleBox["+", FontWeight->"Bold"], StyleBox[ RowBox[{ StyleBox["t", FontWeight->"Plain"], StyleBox["v", FontWeight->"Bold"]}]]}], "=", RowBox[{ RowBox[{ RowBox[{"(", GridBox[{ {"b"}, {"c"}, {"d"} }], ")"}], "+", RowBox[{"t", RowBox[{"(", GridBox[{ { RowBox[{"x", "-", "b"}]}, { RowBox[{"y", "-", "c"}]}, { RowBox[{"z", "-", "d"}]} }], ")"}]}]}], "=", RowBox[{"(", GridBox[{ { RowBox[{"b", "+", RowBox[{"t", RowBox[{"(", RowBox[{"x", "-", "b"}], ")"}]}]}]}, { RowBox[{"c", "+", RowBox[{"t", RowBox[{"(", RowBox[{"y", "-", "c"}], ")"}]}]}]}, { RowBox[{"d", "+", RowBox[{"t", RowBox[{"(", RowBox[{"z", "-", "d"}], ")"}]}]}]} }], ")"}]}]}]}], FontFamily->"Arial"]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["where ", FontFamily->"Arial"], StyleBox["x", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[" is a point on the line and t is a parameter which varies over \ all real numbers. Since the point of interest on this line is (x*,y*,0), \ d+t(z-d)=0, or t=d/(d-z). The values x* and y* may be found by substituting \ this value of t into their respective equations:", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{ RowBox[{ SuperscriptBox["x", "*"], "=", RowBox[{ RowBox[{"b", "+", RowBox[{"t", RowBox[{"(", RowBox[{"x", "-", "b"}], ")"}]}]}], "=", RowBox[{ RowBox[{"b", "+", FractionBox[ RowBox[{"d", RowBox[{"(", RowBox[{"x", "-", "b"}], ")"}]}], RowBox[{"d", "-", "z"}]]}], "=", FractionBox[ RowBox[{ RowBox[{"d", " ", "x"}], "-", RowBox[{"b", " ", "z"}]}], RowBox[{"d", "-", "z"}]]}]}]}], ",", "\[IndentingNewLine]", RowBox[{ SuperscriptBox["y", "*"], "=", RowBox[{ RowBox[{"c", "+", RowBox[{"t", RowBox[{"(", RowBox[{"y", "-", "c"}], ")"}]}]}], "=", RowBox[{ RowBox[{"c", "+", FractionBox[ RowBox[{"d", RowBox[{"(", RowBox[{"y", "-", "c"}], ")"}]}], RowBox[{"d", "-", "z"}]]}], "=", FractionBox[ RowBox[{ RowBox[{"d", " ", "y"}], "-", RowBox[{"c", " ", "z"}]}], RowBox[{"d", "-", "z"}]]}]}]}]}], FontFamily->"Arial"]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[StyleBox["Dividing the numerators and denominators of these \ fractions by d, ", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{ RowBox[{ SuperscriptBox["x", "*"], "=", FractionBox[ RowBox[{"x", "-", RowBox[{ FractionBox["b", "d"], " ", "z"}]}], RowBox[{"1", "-", RowBox[{ FractionBox["1", "d"], "z"}]}]]}], ",", RowBox[{ SuperscriptBox["y", "*"], "=", FractionBox[ RowBox[{"y", "-", RowBox[{ FractionBox["c", "d"], " ", "z"}]}], RowBox[{"1", "-", RowBox[{ FractionBox["1", "d"], "z"}]}]]}]}], FontFamily->"Arial"]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["As in the text, the perspective projection will be represented by \ a matrix P, and homogeneous coordinates will be used to represent the points. \ The point (x,y,z,1) must map to the point (x*,y*,0,1), but these coordinates \ may be scaled by the factor 1-", FontFamily->"Arial"], Cell[BoxData[ FormBox[ FractionBox["1", "d"], TraditionalForm]], FontFamily->"Arial"], StyleBox["z, and instead map the point (x,y,z,1) to the point (x-", FontFamily->"Arial"], Cell[BoxData[ FormBox[ FractionBox["b", "d"], TraditionalForm]], FontFamily->"Arial"], StyleBox["z, y-", FontFamily->"Arial"], Cell[BoxData[ FormBox[ FractionBox["c", "d"], TraditionalForm]], FontFamily->"Arial"], StyleBox["z, 0, 1-", FontFamily->"Arial"], Cell[BoxData[ FormBox[ FractionBox["1", "d"], TraditionalForm]], FontFamily->"Arial"], StyleBox["z). Now it is relatively easy to display P:", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{ RowBox[{"P", RowBox[{"(", GridBox[{ {"x"}, {"y"}, {"z"}, {"1"} }], ")"}]}], "=", RowBox[{ RowBox[{ RowBox[{"(", GridBox[{ {"1", "0", RowBox[{"-", FractionBox["b", "d"]}], "0"}, {"0", "1", RowBox[{"-", FractionBox["c", "d"]}], "0"}, {"0", "0", "0", "0"}, {"0", "0", RowBox[{"-", FractionBox["1", "d"]}], "1"} }], ")"}], RowBox[{"(", GridBox[{ {"x"}, {"y"}, {"z"}, {"1"} }], ")"}]}], "=", RowBox[{"(", GridBox[{ { RowBox[{"x", "-", RowBox[{ FractionBox["b", "d"], "z"}]}]}, { RowBox[{"y", "-", RowBox[{ FractionBox["c", "d"], "z"}]}]}, {"0"}, { RowBox[{"1", "-", RowBox[{ FractionBox["1", "d"], "z"}]}]} }], ")"}]}]}], FontFamily->"Arial"]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["For example, here is the perspective projection of the Toyota from \ two different points:", FontFamily->"Arial"], StyleBox["\n\n", FontFamily->"Times New Roman"], StyleBox["Example 1", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[": (b,c,d)=(0,0,10) This is the situation computed in the text. \ Then ", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{"P", "=", RowBox[{"(", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"0", "0", "0", "0"}, {"0", "0", RowBox[{"-", FractionBox["1", "10"]}], "1"} }], ")"}]}], FontFamily->"Arial"]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["In ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" form,", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["so the data matrix D is converted to PD, which is \ labelled as newd:", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"newd", "=", RowBox[{"P", ".", "d"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "6.5`"}], RowBox[{"-", "6.5`"}], RowBox[{"-", "6.5`"}], RowBox[{"-", "6.5`"}], RowBox[{"-", "2.5`"}], RowBox[{"-", "2.5`"}], RowBox[{"-", "0.75`"}], RowBox[{"-", "0.75`"}], "3.25`", "3.25`", "4.5`", "4.5`", "6.5`", "6.5`", "6.5`", "6.5`"}, { RowBox[{"-", "2.`"}], RowBox[{"-", "2.`"}], "0.5`", "0.5`", "0.5`", "0.5`", "2.`", "2.`", "2.`", "2.`", "0.5`", "0.5`", "0.5`", "0.5`", RowBox[{"-", "2.`"}], RowBox[{"-", "2.`"}]}, {"0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`"}, {"1.25`", "0.75`", "0.75`", "1.25`", "1.25`", "0.75`", "1.25`", "0.75`", "1.25`", "0.75`", "1.25`", "0.75`", "1.25`", "0.75`", "0.75`", "1.25`"} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]], FontFamily->"Arial", FontSize->10]], "Text", PageWidth->PaperWidth, FontFamily->"Times New Roman"], Cell[TextData[{ StyleBox["To obtain coordinates in ", FontFamily->"Arial"], Cell[BoxData[ FormBox[ SuperscriptBox[ StyleBox["R", FontFamily->"MS Sans Serif"], RowBox[{" ", "2"}]], TraditionalForm]], FontFamily->"Arial"], StyleBox[" divide the top three entries in each column by the corresponding \ entry in the fourth row, then discard the fourth row. One can then plot the \ points (x*,y*) given in the first two rows of this matrix and connect them \ using the connection data in Figure 1. One can use ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" to find and plot these points in the following manner. First \ notice that the third row of the matrix will always contain only zeros and \ need not be changed. The top two entries in each column of PD (which we have \ stored as newd) may be divided by the entries in the fourth row using the \ command", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "5.2`"}], RowBox[{"-", "8.67"}], RowBox[{"-", "8.67"}], RowBox[{"-", "5.2`"}], RowBox[{"-", "2.`"}], RowBox[{"-", "3.33"}], RowBox[{"-", "0.6000000000000001`"}], RowBox[{"-", "1.`"}], "2.6`", "4.33", "3.6`", "6.`", "5.2`", "8.67", "8.67", "5.2`"}, { RowBox[{"-", "1.6`"}], RowBox[{"-", "2.67"}], "0.67", "0.4`", "0.4`", "0.67", "1.6`", "2.67", "1.6`", "2.67", "0.4`", "0.67", "0.4`", "0.67", RowBox[{"-", "2.67"}], RowBox[{"-", "1.6`"}]} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]], "Text", FontFamily->"Arial"], Cell[TextData[StyleBox["The program RenderData included with this assignment \ will use the data in this matrix and the adjacency matrix given above to plot \ the picture. In this case, the adjacency matrix is A and the data matrix is \ m, so the program produces Figure 3:", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"fig3", "=", RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["The program should produce the figure below:", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .30769 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.0549451 0.153846 0.0549451 [ [ 0 0 0 0 ] [ 1 .30769 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 0 m 1 0 L 1 .30769 L 0 .30769 L closepath clip newpath 0 g .5 Mabswid [ ] 0 setdash .21429 .06593 m .02381 .00733 L s .21429 .06593 m .21429 .17582 L s .21429 .06593 m .78571 .06593 L s .02381 .00733 m .02381 .19048 L s .02381 .00733 m .97619 .00733 L s .02381 .19048 m .21429 .17582 L s .02381 .19048 m .31685 .19048 L s .21429 .17582 m .39011 .17582 L s .39011 .17582 m .31685 .19048 L s .39011 .17582 m .46703 .24176 L s .31685 .19048 m .44505 .30037 L s .46703 .24176 m .44505 .30037 L s .46703 .24176 m .64286 .24176 L s .44505 .30037 m .7381 .30037 L s .64286 .24176 m .7381 .30037 L s .64286 .24176 m .6978 .17582 L s .7381 .30037 m .82967 .19048 L s .6978 .17582 m .82967 .19048 L s .6978 .17582 m .78571 .17582 L s .82967 .19048 m .97619 .19048 L s .78571 .17582 m .97619 .19048 L s .78571 .17582 m .78571 .06593 L s .97619 .19048 m .97619 .00733 L s .97619 .00733 m .78571 .06593 L s % End of Graphics MathPictureEnd \ \>"], "Graphics", PageWidth->PaperWidth, TextAlignment->Center, ImageSize->{370, 113.625}, ImageMargins->{{72, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["CompressedBitmap", "\<\ eJztmtlPU0EUxgdaCEsVRUFAgaIBlIAL7kSxRWxRARXBFZFCMCUuKBA1rnGL a1zjFteo/49PPPnok08++mSwc0/z6SXfhZlnbwJzzzLzO2fO3abTdiTGk0Mn E+PDg4lwfDRxOjk8OBaOjYymTIEMpTJGlVJnwkrLkykx3Uym/ibHdKMtXM7T h9QxqPp0k/+PVQW0RaXdKlO3ztBu3YgzALc+5vHR+j9Tt0Eg2qEGSedcb042 Yjt6DGqOHSfXzYlAzbfjhNzz2gB1th1njjufRqiFdpx5bk491CI7TrGbUwO1 xI5T6q5PBdSFdpxydz4lUCvtOGE3pxDqYjvOEve88qBW23Fq3fkEoS6z49Rh 4G9I9XaIBgz8BWmFHWIlyvATUqMdYg1i/4C0zg6xHgO/Q9poh2hC+t8gbbJD NCP2BKSIHSKq2wlt2mo3sIXYvhr287E+1sf6WB/rY32sj/WxPtbH+tj/CrtZ t3FtGtFSrZa22CFW6TakTREtBbUUIP2OE5vTL0ebykBZbRfe2bHJ16a4lrK0 xPbIhokthPAVoCy1C/83707M3tkSc7YRk2REEYJWYewiu6AFyLYHc55P+g0R WznCV4My1y58AHn3Ys5lpN+g1+nKQaEdStYM4U9pTyXplCA2ZyenSZvSe7xn SScGO0ps7FqU20OdM8QeMcRGBHse104YUq8hIiqIC4aZHbTDXjTE7jfEypNK XTLE9hhiZQdJXTbE7jXEtgr2iiF2jyF2m2CvkrO+2xARE8Q1w8w6iI1tXcYF e90Qu9Mw2zT2hiF2uyG2TbA3DbFxQ6yEV7fcp4eew5lhOwR2m7gqEKDVECb1 VncMJxw1POvtgr1riGVLBZZtGnvPCxvVprWeV6u671WzKbZm1JFNrlNgD9Cp 3LBSy4ltl8AeEhd7F7YgaAPxyr2uHhFXKbG1AlZHvPLsUY+Ja4HhvVBDbF2C fUJcxcTWhhyngT0lLraQYU8X9kWWPM3VM8RmsHZ4q4i3WxDPiYstkzoBY9ej vLTUC+Iq8DxzM19M+wT7krjY17FdyJFdTPK+Vq+Ia5ZnfciSdortgGBfI3bI ayKOdxrEG+LK9eruwNh3ybLaUW+Ji31cOGRYW+mn3hFXNrH1IkdW28MCe09c bI3cZ1gYWT+qD8TFPqj1I0dWGFnPqo/oxBAD8LIipBGfnEPQ5UrJx8iITM/Z q88IlYSk3D/X6Bftiz6c0NYBMTgc8lsRlfEHQEmDkQ==\ \>"], ImageRangeCache->{{{96.75, 391.75}, {427.813, 337.938}} -> {-15.2189, \ 18.2565, 0.0498471, 0.0498471}}], Cell[TextData[StyleBox["Figure 3: The Toyota from point (0,0,10)", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["Example 2", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[": (b,c,d)=(10,5,10) In this case ", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{"P", "=", RowBox[{"(", GridBox[{ {"1", "0", RowBox[{"-", "1"}], "0"}, {"0", "1", RowBox[{"-", FractionBox["1", "2"]}], "0"}, {"0", "0", "0", "0"}, {"0", "0", RowBox[{"-", FractionBox["1", "10"]}], "1"} }], ")"}]}], FontFamily->"Arial"]], "DisplayFormula", PageWidth->PaperWidth, TextAlignment->Center], Cell[BoxData[ RowBox[{ RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", RowBox[{"-", "1"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["so the data matrix D is converted to PD:", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"newd", "=", RowBox[{"P", ".", "d"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "4.`"}], RowBox[{"-", "9.`"}], RowBox[{"-", "9.`"}], RowBox[{"-", "4.`"}], "0.`", RowBox[{"-", "5.`"}], "1.75`", RowBox[{"-", "3.25`"}], "5.75`", "0.75`", "7.`", "2.`", "9.`", "4.`", "4.`", "9.`"}, { RowBox[{"-", "0.75`"}], RowBox[{"-", "3.25`"}], RowBox[{"-", "0.75`"}], "1.75`", "1.75`", RowBox[{"-", "0.75`"}], "3.25`", "0.75`", "3.25`", "0.75`", "1.75`", RowBox[{"-", "0.75`"}], "1.75`", RowBox[{"-", "0.75`"}], RowBox[{"-", "3.25`"}], RowBox[{"-", "0.75`"}]}, {"0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`", "0.`"}, {"1.25`", "0.75`", "0.75`", "1.25`", "1.25`", "0.75`", "1.25`", "0.75`", "1.25`", "0.75`", "1.25`", "0.75`", "1.25`", "0.75`", "0.75`", "1.25`"} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, FontFamily->"Times New Roman", FontSize->10], Cell[TextData[StyleBox["After rescaling by the elements in the fourth row, \ the coordinates for (x*,y*) are the columns of the matrix ", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "3.2`"}], RowBox[{"-", "12.`"}], RowBox[{"-", "12.`"}], RowBox[{"-", "3.2`"}], "0.`", RowBox[{"-", "6.667"}], "1.4000000000000001`", RowBox[{"-", "4.333"}], "4.6000000000000005`", "1.`", "5.6000000000000005`", "2.667", "7.2`", "5.333", "5.333", "7.2`"}, { RowBox[{"-", "0.6000000000000001`"}], RowBox[{"-", "4.333"}], RowBox[{"-", "1.`"}], "1.4000000000000001`", "1.4000000000000001`", RowBox[{"-", "1.`"}], "2.6`", "1.`", "2.6`", "1.`", "1.4000000000000001`", RowBox[{"-", "1.`"}], "1.4000000000000001`", RowBox[{"-", "1.`"}], RowBox[{"-", "4.333"}], RowBox[{"-", "0.6000000000000001`"}]} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, FontFamily->"Times New Roman", FontSize->10], Cell[TextData[StyleBox["Again using RenderData to plot the points (x*,y*) and \ connecting them using the adjacency matrix A, the picture in Figure 4 \ results.", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["The program should produce the figure below:", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .36111 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.619048 0.0496032 0.223545 0.0496032 [ [ 0 0 0 0 ] [ 1 .36111 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 0 m 1 0 L 1 .36111 L 0 .36111 L closepath clip newpath 0 g .5 Mabswid [ ] 0 setdash .46032 .19378 m .02381 .0086 L s .46032 .19378 m .46032 .29299 L s .46032 .19378 m .97619 .19378 L s .02381 .0086 m .02381 .17394 L s .02381 .0086 m .8836 .0086 L s .02381 .17394 m .46032 .29299 L s .02381 .17394 m .28836 .17394 L s .46032 .29299 m .61905 .29299 L s .61905 .29299 m .28836 .17394 L s .61905 .29299 m .68849 .35251 L s .28836 .17394 m .4041 .27315 L s .68849 .35251 m .4041 .27315 L s .68849 .35251 m .84722 .35251 L s .4041 .27315 m .66865 .27315 L s .84722 .35251 m .66865 .27315 L s .84722 .35251 m .89683 .29299 L s .66865 .27315 m .75132 .17394 L s .89683 .29299 m .75132 .17394 L s .89683 .29299 m .97619 .29299 L s .75132 .17394 m .8836 .17394 L s .97619 .29299 m .8836 .17394 L s .97619 .29299 m .97619 .19378 L s .8836 .17394 m .8836 .0086 L s .8836 .0086 m .97619 .19378 L s % End of Graphics MathPictureEnd \ \>"], "Graphics", PageWidth->PaperWidth, ImageSize->{288, 103.938}, ImageMargins->{{100, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["CompressedBitmap", "\<\ eJylml1oXEUUx29201qTxtZm8/2xm7RN2lTT2jZWqy39TizGKvX7k7RWm4di qXkQfPDBBxFFRamiWKGoIIqIIkURUUQQEUQEEUFEEEFEEF98jXtnpv/ZDb8T 7/ZCkjt7zsz//M+5Z2bO7GR6Zu74sRMzc7NHZyqTp2ZOHp89+nDlwEOnqqJi U5I0VZIkebCSpO35ajP8ma/+zA+lf1JJbF+UPv5NkuZkdY2g+jH9cYLqs/r7 T/qhkLaGuV/4dV3+5s7Fus7F9K8T/bVAmz6H7IFLhf5nYwOXaeAfQL7arthj W8T294bHtsnub+7zkoVBc5/LNsAKGf/1wgBWicEvoC2ArN8GKwns5/xgnXLt JytHFsj6bLAeMfsxP1ifwH4AbTPIem2wAbn5fX6wiph9B9olVmAYbFhg3+YH WyM3vwHtUpB122CjYvZ1frD1AvsKtDSiywbbIDe/zA82LmZfgHaZNWcYbJOY fZYfbIuYfQrai0HWYYNNCOyT/GDb5OZHoG0BWckG2y5m5/KDXSuwD0HbCrJ2 G2yn3Hw/P9huMXsPtMtBtsoG2yuwd/OD7Zebb4O2DWSX2mBTYvZWfrCDYvYm aC8B2UobbFrMXs8PdkhgZ0G7wpQh2E1y87X8YDeL2aumS+Q6gt0qsFfyg90u N18y04DSBcHuErPT+cHuEdgL5tShKYZg98nN5/KDHRGzZ0DbDrJWG+x+gT2d H+wBufkkaEsga7HBZsXsiQsAuyHVVMTHvYCRtNUFA/1W5x/uFDGpVizs7l4w MH2uycgsGGgT7D7oVKi3d4cTNtd1Oa9bndGury586jvNHkEUJCurdQtAUCFc acx8SW7vQrfriDhyh6Ef1b1Zifj88sWoI7LD8tSJBkXkRhPs/4nQ5AlE+mXq GugUT9OOyOm0FUJZlgdXWehO1A/agyBrlakh0NLC5It8n4GOSKwi44G8BwZe BzLaYQcbIzIqo1uhU6TUCdopkNEGRpRoOwmUxhSbK6DTclGiBJnM6D1RIuqB 0rgojVuvwb1C8oooEXWiRIVKoLRZcbjMGuhElCMHQNYhJ8oZMy0QmVBs1lvv 2YmouN8Psm6Q0XxchNLVojQir0oiQmdG2lB6MxKhCjwQ2SGja6FT/NqJjv57 M5onGR1XAqVdis2wlQVORN8t7cmYtkSJXn+gtE+UKPW6pKWIxA1/ALR01A1G pwRLbHsUh92gpchRtixi/noZoIE0B5yTO0FBVRSB0jcSgc0hBaNL8WQO51lv B+1IRiI0AQORwyLSYWUn1TVOdCVo12WkZH4rnyS3yQCt2mbd5kSbQTumCDdI 5E7FhnYq86zhTG0E7eUZE48Wp0DpXlGiRZA23jbFZgNoiSZRomI2UDoiA9F7 IrJS/ShHNmUkQuV9IHJMsaGJRzt7uyjRlKZcIkq0cAdKs6JE75Q21HiZQSX6 VkW4QSInBOsCOJ22qCKnqpOuYwLsSflXUIvW4D6Z75cH20zzfDcVThRz9Sbd eJrDg9LGWxhasDpDWtXKEp1fHhFKdJDCPKR+vbI2kSG+NY49CrGM1VSEjTmw CNhjggh001b66wauFdu47W4BtrFeCrCPp4+N9XzcNOmu6fSUbNOxP16w0drj i5vkWdGiY160TZW4L2mS58Uino7jMZYq5zDwRXWiAifmL22+fs4mL8s27TgD gqD4hMvnM4KgL4CiS7RKhBvzs3KEtvGyIMjNcJP/hljQil6pTyOskvxX6EVt otHvguVcGPiObNM6Ge8cqSDwxb+/pXAaqs8jCzpF+tebfCAWtKnEy0rajkc9 xDl1onUqTnFaOP1WmXwsFs3qvk4t87Iy8bduRWvVitejtL8HiM/Th1uSYyFF W8KY7+6uM90S4cudun8VqW0nTf8BI36tWA==\ \>"], ImageRangeCache->{{{119.188, 348.563}, {319.063, 236.938}} -> {-23.1321, \ 16.4968, 0.0709167, 0.0709167}}], Cell["Figure 4: The Toyota from (10,5,10)", "Text", PageWidth->PaperWidth, TextAlignment->Center, FontFamily->"Arial"], Cell[TextData[StyleBox["To give the effect of moving around while viewing the \ Toyota, a sequence of pictures from a varying set of centers of projection \ could be constructed. For example, consider moving along the line with \ constant y-coordinate 0 and constant z-coordinate 10. Points on this line \ have the form (b,0,10), where the x-coordinate b varies over some interval. \ Since this line runs parallel to the driver's side of the Toyota, moving \ along this line should produce a set of images one would see while moving \ beside the car. Since b is variable, the projection matrix in this case is", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ TagBox[ RowBox[{"P", "=", RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", RowBox[{"-", FractionBox["b", "10"]}], "0"}, {"0", "1", "0", "0"}, {"0", "0", "0", "0"}, {"0", "0", RowBox[{"-", FractionBox["1", "10"]}], "1"} }], "\[NoBreak]", ")"}]}], MatrixForm[#]& ]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["A sequence of pictures will be generated from a set of centers of \ projection along this line by using the ", FontFamily->"Arial"], StyleBox["Do ", "Input"], StyleBox["command. The x-coordinate b will go from -10 to 10 by increments \ of 1/10.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"Do", "[", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"b", "=", RowBox[{"i", "/", "10"}]}], ";", "\[IndentingNewLine]", RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", RowBox[{ RowBox[{"-", "b"}], "/", "10"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"newd", "=", RowBox[{"P", ".", "d"}]}], ";", "\[IndentingNewLine]", RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}]}], ")"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"-", "100"}], ",", "100", ",", "1"}], "}"}]}], "]"}]], "Input", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" can animate these pictures. Click on the cell bracket containing \ all of the pictures which were just generated, then press Ctrl-Y. The \ pictures should then be animated, and will simulate passing the Toyota.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[StyleBox["Another way to give the effect of motion is to \ perform a rotation or a \"zooming in\" on the original data then performing \ a perspective projection from a fixed point. Examples of each of these \ operations follow.", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["Rotations", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[": To rotate the three-dimensional object about the y-axis by an \ angle \[CurlyPhi], the following calculations are done. By convention, a \ positive angle is the counterclockwise direction when looking toward the \ origin from the positive half of the axis of rotation. As in the text, it \ may be shown that the rotation matrix using homogeneous coordinates for such \ a rotation is", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{ SubscriptBox["A", "y"], "=", RowBox[{"(", GridBox[{ { RowBox[{"cos", " ", "\[CurlyPhi]"}], "0", RowBox[{"sin", " ", "\[CurlyPhi]"}], "0"}, {"0", "1", "0", "0"}, { RowBox[{ RowBox[{"-", "sin"}], " ", "\[CurlyPhi]"}], "0", RowBox[{"cos", " ", "\[CurlyPhi]"}], "0"}, {"0", "0", "0", "1"} }], ")"}]}], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[BoxData[ RowBox[{ RowBox[{"Ay", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "phi", "]"}], ",", "0", ",", RowBox[{"Sin", "[", "phi", "]"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", RowBox[{"Sin", "[", "phi", "]"}]}], ",", "0", ",", RowBox[{"Cos", "[", "phi", "]"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["Likewise the matrices using homogeneous coordinates \ for rotations about the x and z axes are:", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{ SubscriptBox["A", "x"], "=", RowBox[{ RowBox[{ RowBox[{"(", GridBox[{ {"1", "0", "0", "0"}, {"0", "cos\[CurlyPhi]", RowBox[{"-", "sin\[CurlyPhi]"}], "0"}, {"0", "sin\[CurlyPhi]", "cos\[CurlyPhi]", "0"}, {"0", "0", "0", "1"} }], ")"}], " ", "and", " ", SubscriptBox["A", "z"]}], "=", RowBox[{"(", GridBox[{ {"cos\[CurlyPhi]", RowBox[{"-", "sin\[CurlyPhi]"}], "0", "0"}, {"sin\[CurlyPhi]", "cos\[CurlyPhi]", "0", "0"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], ")"}]}]}], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[BoxData[ RowBox[{ RowBox[{"Ax", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"Cos", "[", "phi", "]"}], ",", RowBox[{"-", RowBox[{"Sin", "[", "phi", "]"}]}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"Sin", "[", "phi", "]"}], ",", RowBox[{"Cos", "[", "phi", "]"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"Az", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "phi", "]"}], ",", RowBox[{"-", RowBox[{"Sin", "[", "phi", "]"}]}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"Sin", "[", "phi", "]"}], ",", RowBox[{"Cos", "[", "phi", "]"}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["To rotate the Toyota by 45\[Degree] (or \[Pi]/4 \ radians) about the x-axis one could set \[CurlyPhi] = \[Pi]/4 and find that \ the rotation matrix is", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[{ RowBox[{ RowBox[{"phi", "=", RowBox[{"\[Pi]", "/", "4"}]}], ";"}], "\[IndentingNewLine]", "Ax"}], "Input", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ SubscriptBox["A", "x"], "=", TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0"}, {"0", FractionBox["1", SqrtBox["2"]], RowBox[{"-", FractionBox["1", SqrtBox["2"]]}], "0"}, {"0", FractionBox["1", SqrtBox["2"]], FractionBox["1", SqrtBox["2"]], "0"}, {"0", "0", "0", "1"} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]}]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["Then apply this matrix to the data matrix D, getting ", FontFamily->"Arial"], Cell[BoxData[ FormBox[ SubscriptBox["A", "x"], TraditionalForm]], FontFamily->"Arial"], StyleBox["D, which is too unwieldy to display.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"Ax", ".", "d"}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[{ StyleBox[" A perspective projection is now applied to this set of data. If \ the center of projection is (0,0,10) as in the first example, P", FontFamily->"Arial"], Cell[BoxData[ FormBox[ SubscriptBox["A", "x"], TraditionalForm]], FontFamily->"Arial"], StyleBox["D may be computed (remember to re-enter the correct P at this \ point)", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"newd", "=", RowBox[{"P", ".", "Ax", ".", "d"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["then divided by the fourth row to get the coordinates \ for (x*,y*) as the columns of the matrix ", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "4.93"}], RowBox[{"-", "6.74"}], RowBox[{"-", "8.25"}], RowBox[{"-", "5.69"}], RowBox[{"-", "2.19"}], RowBox[{"-", "3.17"}], RowBox[{"-", "0.72"}], RowBox[{"-", "1.1"}], "3.14", "4.77", "3.94", "5.71", "5.69", "8.25", "6.74", "4.93"}, {"0.27", RowBox[{"-", "3.3"}], RowBox[{"-", "1.79"}], "1.86", "1.86", RowBox[{"-", "1.79"}], "3.07", RowBox[{"-", "0.52"}], "3.07", RowBox[{"-", "0.52"}], "1.86", RowBox[{"-", "1.79"}], "1.86", RowBox[{"-", "1.79"}], RowBox[{"-", "3.3"}], "0.27"} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, FontFamily->"Times New Roman", FontSize->10], Cell[TextData[StyleBox["These points are plotted to get the picture in Figure \ 5. ", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}]], "Input", PageWidth->PaperWidth], Cell["Notice how the image is rotated from that in Figure 1.", "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .38617 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.0577193 0.199588 0.0577193 [ [ 0 0 0 0 ] [ 1 .38617 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 0 m 1 0 L 1 .38617 L 0 .38617 L closepath clip newpath 0 g .5 Mabswid [ ] 0 setdash .21539 .21507 m .11107 .00919 L s .21539 .21507 m .17131 .30686 L s .21539 .21507 m .78461 .21507 L s .11107 .00919 m .02381 .09598 L s .11107 .00919 m .88893 .00919 L s .02381 .09598 m .17131 .30686 L s .02381 .09598 m .31685 .09598 L s .17131 .30686 m .37358 .30686 L s .37358 .30686 m .31685 .09598 L s .37358 .30686 m .45819 .37698 L s .31685 .09598 m .43651 .16966 L s .45819 .37698 m .43651 .16966 L s .45819 .37698 m .68118 .37698 L s .43651 .16966 m .77514 .16966 L s .68118 .37698 m .77514 .16966 L s .68118 .37698 m .72756 .30686 L s .77514 .16966 m .82967 .09598 L s .72756 .30686 m .82967 .09598 L s .72756 .30686 m .82869 .30686 L s .82967 .09598 m .97619 .09598 L s .82869 .30686 m .97619 .09598 L s .82869 .30686 m .78461 .21507 L s .97619 .09598 m .88893 .00919 L s .88893 .00919 m .78461 .21507 L s % End of Graphics MathPictureEnd \ \>"], "Graphics", PageWidth->PaperWidth, ImageSize->{283, 109.25}, ImageMargins->{{108, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["CompressedBitmap", "\<\ eJy1mtluFUcQhtv2CcasBuMNG/uwB7MHJZEisROMIIiEPcAFjoUwOzgmibIg uEBCCIlX4FEQQghFCEWIC1/wLs70VDG2j79uV+uMJZ8z4+rqv/75e685x4fG Rq7cGhq7NjxUHRwdujtybfjX6uE7o5mpqcG5hh7n3K2q8/cT2a1+TWR/E73+ y1v4vt9fPjlXcVUx9OWXJm8RQ3YdB1u/3K3KL5WiSIvH2SzgrrcGz38awfbR 6NcjsD1Q1GSEJb+VArsSir4A2wejX7fAdkPRPCMs+XUJbBcUzQfbf0a/ToHt hKIWIyz5dQhsBxQtBNt7o1+7wLZD0SIjLPmtENgVULQEbO+Mfm0C2wZFS42w 5LdcYJdD0TKw/Wv0ExsWUSiCJb9WgW0Nyj7d9tboJ8KgPtQ7CJb8pBmxNWmI vDH6LRbYxVBEA5pgyU/6MnZpmtVeG/1k5OEApDmYYMlvgcAugKJVYHtl9JPp B2eh2sUuBEt+MlninFkF20ujX7PA5pdTvuS5vxvwd5GIq8E24L9z0zN/1+jv aJmjus1poTbn35PLvb9mn6fgSut3hAG1WvBhs+V2qu0zkyfJjz8/3BOpzQZC z5kHfVzcVYx4LeHwxHYT2CjUoxqbv1oVUUo05JMo5To8Sm4QnRpoIiMBKfy8 IugDow6ErFMfTdTk/mWwc023/VkHpUX1U2optCmBCK2NViLU5X+rg5Kuq7QL 6DdSWlhoc1+78dTSQB8m8CVhLkR9Y+hxci6jdi4Erlxo02XVhZr5Tn0K6Z6N dpjkTgotLRS6XR+X1vq5LCu43Mj/59UpkRBtocl9A9jooDFSn0x6KCBk2jSR TG2FTFcTZaIIevihIwG5k0y07x8ugVpb/dQ6Cq1+gdLGCEmaBZQQPS8RWg+2 roLQ5RIU0nM2ZQVoZ08K5WmVy95UiRCirtweDm5Vg3I6l0rQRanRyZF0sVK7 mNiHSDVN5NDp00qN6l5MVI1idc4NtQslqKbUqFGI2jpjg/5cgmqaR6RzP+Vt rdTOJ6pGw6A7TM2qGjXo+RJUU2qU1rCqRtTOlaCaprGJBtnWJlGzq0axNHFP gpKSVmpnE1Wj+L1halbVaLo+W4JqSo3a2qoaUTtTgmpiwykvp/bCm6hiX7gi DXfrM50OPtPsNoqrNGkzRZMeDXOieSoic/gVEu3OMXtCIWm1S6VGr6EIozo3 1E5GqDWnUVsDRbQtpvMLbRhj1Cj/Q7FELuzqdISwUvspQo2yrRRrTZganQQp fZBKjTJDFEup0cijo7OV2o8RapQUpVgiF3ZvSsRQVpn6SYwaJUwplsiFByrK V1mpnYhQo3wlxVofpkYpqM0lUCNcsim1YKbOQI362vEINVKIYolc4YRmjW2r UbUYNepXFGvj3FD7IUKNsngRavT6gKbGbSVQo4mCYolcOPJoQdkONprJj0Wo 0fRKsTaFqdEyvKMEauRPsZQajTzavKRRq0yzZffU9hRGlHJboIje2+00sjoa EYzmGYolSuGgo+PJV2CjbnOUBaMdGYXZEmZFO/ddRsGORASjcyXFUmrbIlBf J9GZIVJ3BFqG+YzR7q/fGKMORuBrj0D+uiMc8ltjbxjkB609vE6Jll++C42x w4CXffq8QQaPuw7VaOolqOxedgv6Hmd6DVpbvo9oqlA3/SVPnIcBZtCQrZ6+ 2pp9f3KIUWSbrS/rZt9KxFHuGlEOQuPKKcndA3fauB4ACDmeyuvQXM3EimPg TsvvfoCQ5IK+Fp59mdxfcJRMy4wX2/5Di9g+iK0Qv4M7rTj7itiSgHJ/FAZy 3wsRtWLtDwTkvwBEHkAShe4vcKIJdU9RUfKy7m9jxd21Ff+JjMLJKJIzlx+F 5AZ9nM+1dkMoDfCwqDMZW94OyE9c9nqDvMkI/gDbNfwP/uFgYA==\ \>"], ImageRangeCache->{{{125.563, 350.938}, {261.125, 174.75}} -> {-18.4547, \ 10.0781, 0.0619675, 0.0619675}}], Cell[TextData[StyleBox["Figure 5: The rotated Toyota", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[StyleBox["A sequence of pictures can be generated which show \ the effects of rotating various amounts. For example, the following code can \ be used to simulate the rotation of the Toyota about the z-axis, as viewed \ from the point (0,0,10).", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"Do", "[", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"phi", "=", RowBox[{"i", "*", RowBox[{"Pi", "/", "100"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Az", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "phi", "]"}], ",", RowBox[{"-", RowBox[{"Sin", "[", "phi", "]"}]}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"Sin", "[", "phi", "]"}], ",", RowBox[{"Cos", "[", "phi", "]"}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"newd", "=", RowBox[{"P", ".", "Az", ".", "d"}]}], ";", "\[IndentingNewLine]", RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}]}], ")"}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", "200", ",", "1"}], "}"}]}], "]"}]], "Input", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["\"Zooming\"", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[": Imaging software packages offer the ability to zoom in (or out) \ from a picture. Usually 100% zoom indicates the original size of the graphics \ image. A zoom percentage of 200% would be double that of the original, while \ a percentage of 50% would be half the size of the original. To make this into \ a transformation, note that this is a special case of scaling where each of \ the x, y and z axes is scaled by the same factor p. For a 200% zoom, p=2; \ for a 50% zoom, p=.5. As is shown on page 160, the matrix which performs \ this scaling in homogeneous coordinates is ", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{"B", "=", RowBox[{"(", GridBox[{ {"p", "0", "0", "0"}, {"0", "p", "0", "0"}, {"0", "0", "p", "0"}, {"0", "0", "0", "1"} }], ")"}]}], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[StyleBox["Thus, for example, to zoom in by 200% on the image of \ the Toyota, one could first find that ", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ RowBox[{"B", "=", RowBox[{"(", GridBox[{ {"2", "0", "0", "0"}, {"0", "2", "0", "0"}, {"0", "0", "2", "0"}, {"0", "0", "0", "1"} }], ")"}]}], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[BoxData[ RowBox[{ RowBox[{"B", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "2", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "2", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth], Cell[TextData[StyleBox["and thus that BD is the matrix", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{"B", ".", "d"}], ";"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "13"}], RowBox[{"-", "13"}], RowBox[{"-", "13"}], RowBox[{"-", "13"}], RowBox[{"-", "5"}], RowBox[{"-", "5"}], RowBox[{"-", "1.5"}], RowBox[{"-", "1.5"}], "6.5", "6.5", "9", "9", "13", "13", "13", "13"}, { RowBox[{"-", "4"}], RowBox[{"-", "4"}], "1", "1", "1", "1", "4", "4", "4", "4", "1", "1", "1", "1", RowBox[{"-", "4"}], RowBox[{"-", "4"}]}, { RowBox[{"-", "5"}], "5", "5", RowBox[{"-", "5"}], RowBox[{"-", "5"}], "5", RowBox[{"-", "5"}], "5", RowBox[{"-", "5"}], "5", RowBox[{"-", "5"}], "5", RowBox[{"-", "5"}], "5", "5", RowBox[{"-", "5"}]}, {"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]], "Text", FontFamily->"Arial", FontWeight->"Plain", FontVariations->{"CompatibilityType"->0}]], "Input", PageWidth->PaperWidth, GeneratedCell->False, CellAutoOverwrite->False], Cell[TextData[StyleBox["The matrix PBD (given center of projection (0,0,10)) \ may now be computed, then divided by its fourth row to get the matrix", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[{ RowBox[{ RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"newd", "=", RowBox[{"P", ".", "B", ".", "d"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}], ";"}]}], "Input", PageWidth->PaperWidth], Cell[BoxData[ StyleBox[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { RowBox[{"-", "8.67"}], RowBox[{"-", "26"}], RowBox[{"-", "26"}], RowBox[{"-", "8.67"}], RowBox[{"-", "3.33"}], RowBox[{"-", "10"}], RowBox[{"-", "1"}], RowBox[{"-", "3"}], "4.33", "13", "6", "18", "8.67", "26", "26", "8.67"}, { RowBox[{"-", "2.67"}], RowBox[{"-", "8"}], "2", "0.67", "0.67", "2", "2.67", "8", "2.67", "8", "0.67", "2", "0.67", "2", RowBox[{"-", "8"}], RowBox[{"-", "2.67"}]} }], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]], FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, FontFamily->"Times New Roman"], Cell[TextData[StyleBox["When these points are plotted, the picture in Figure \ 6 results. ", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"Do", "[", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "=", RowBox[{"i", "/", "200"}]}], ";", "\[IndentingNewLine]", RowBox[{"P", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{ RowBox[{"-", "1"}], "/", "10"}], ",", "1"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"B", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"p", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "p", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "p", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"newd", "=", RowBox[{"P", ".", "B", ".", "d"}]}], ";", "\[IndentingNewLine]", RowBox[{"M", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"newd", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "/", RowBox[{"newd", "[", RowBox[{"[", RowBox[{"4", ",", "j"}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "16"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}]}], ")"}], ",", RowBox[{"{", RowBox[{"i", ",", "100", ",", "300", ",", "2"}], "}"}]}], "]"}]], "Input", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"fig6", "=", RowBox[{"RenderData", "[", RowBox[{"A", ",", "M"}], "]"}]}]], "Input", PageWidth->PaperWidth], Cell["\<\ Compare this figure to the original picture, which is Figure 3.\ \>", "Text", PageWidth->PaperWidth, FontFamily->"Arial"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.0416667 0.5 0.0416667 [ [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 0 m 1 0 L 1 1 L 0 1 L closepath clip newpath 0 g .5 Mabswid [ ] 0 setdash .13889 .38889 m 0 0 rlineto s .13889 .38889 m 0 .34615 L s .13889 .38889 m .13889 .52778 L s .13889 .38889 m .86111 .38889 L s 0 .16667 m 1 .16667 L s 0 .53846 m .13889 .52778 L s 0 .58333 m .08333 .58333 L s .13889 .52778 m .36111 .52778 L s .36111 .52778 m .08333 .58333 L s .36111 .52778 m .45833 .61111 L s .08333 .58333 m .375 .83333 L s .45833 .61111 m .375 .83333 L s .45833 .61111 m .68056 .61111 L s .375 .83333 m 0 0 rlineto s .375 .83333 m 1 .83333 L s .68056 .61111 m 0 0 rlineto s .68056 .61111 m 1 .80769 L s .68056 .61111 m .75 .52778 L s .75 .52778 m 0 0 rlineto s .75 .52778 m 1 .55556 L s .75 .52778 m .86111 .52778 L s .86111 .52778 m 0 0 rlineto s .86111 .52778 m 1 .53846 L s .86111 .52778 m .86111 .38889 L s 1 .34615 m .86111 .38889 L s % End of Graphics MathPictureEnd \ \>"], "Graphics", PageWidth->PaperWidth, TextAlignment->Center, ImageSize->{294, 294}, ImageMargins->{{100, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["CompressedBitmap", "\<\ eJztmd1vlEUUxme330iLigURxC1FiqDiR1FBhYoIBaVQKioIpUtBWxEVaKKJ 0cRoYgwxxphoTDTGmGhMNDF+xPhneMWlV1556ZVXdWfO4dld8hu7iTcY36T7 7ulznufMvPPOnDnz7r7q3MypM9W52elqZfe56kszs9PnK7tePFeD2kohlNbF TyVEez6ES5f52t/8ULxEpLAL+9/YoT0MxcuV0p/C/r/Y5TjtEjAYL2WbheVo t8m1Kl7a479lU3UISP5+0TvN39OsX6J/e8y/uNnfrXCLzb+kOX5J9KvNv1TA X2IuNdcyuf6UtdxcK8T9Q9YN5rpR3N9lrTZXRcBvsgbMNagwF2WtNVca3osR WG+AfSV1suLnV8CGCnpBL+gFvaAX9IK+IH1N/BqNnrPRWh+tQXOlsqQ3AiPR 6ohWG0Q6A1ji9ahC6ItWv4XtEjCqsD0Q4jRgvfG6SNVFitJ1KWzNHlfEVAKl coziLFf30r12Wdk2IfUy0DwL2IDieEkzphCrgH4KsI0Kcb2F2KMQa4A+Ddhm jUqfhdipEDQbqoCNqBcdFmJb/OqMwO1AnwKs3u8QtsjerOdwHDT7rbFh0R8A 0tOAHTDhJgl3AOkwYOMm3CDhKJCeBOygCW+WcAxIT+SFFQkfBxJhEyZcKeGR bHQKVhPWwCmN/zgwDxlzRYuzZF/2lv0gsHCIx/IhVqqrJ4C0N/uc7PTRwgyl R/2UhVjdYohd2WkWbsqFSLf0CHiPNMyMFoaOpriHGGgxxHb155gJKcUk4Y4I TRqpfrT955hHG5bIZaRjufsp1yd2WAeko4DtzE+FoewYwXNMbbuQEiXlj1EJ fe3ckp1UC89fTw0bsmsC1k5q24UbBRB9TF7PlrcBaQKwA4DZ0sfNgBLLQbXt wk0ttkOJ0IYu3JG7Rxq61LYL78zeDzy2cn1TCHflHkILM8wWfLhbMR/Nze6G /GDbZQtpa1LCh014T26St7r5h3Bv9i6asRNq24X3AYnW6EkJt5lwC5Aoy1Hp db+F2KqYJJyR1+lUX2wH7DkJrY/hQSARRsWwPRu/6WYX9ecFte1C6uBWwM5K OGzCESDRmJ8HzBZNeAhc9Lzn1LYL69md5tXLgFluwZkzDNgrasCFNFdpBb8q 4a0mpHVCOeM1wCz9h93gonz1utp2IS1uSrJvSOgHtz1AogT/JmD+knWvYpLw LXmdTpmPdr+3JbTqAnMt7bfvAGZVFeZ5KhcuqG0X7gcSFSjvSmjVJG5OawF7 DzB/Kz6umINAel9ep9NWTLXhBxL6iZH2TCpoPwTMD+WHwEVl9Udq24VUeNDR 92MJ/YcGOmPRIeITwPxnDCqz6Cjzqdp24WEBRP8MsF4T0lG0H7DP1YALqYy9 DrAvJLzKhFQ4XwvYl4B1W4hJcF0D2Fdq24XHs0PfjH0tof9+NQWkPsC+Acze MFmdkmKS8Ft5nU6vRRYB9p2EJROeBBK9jfo+XksJwtc43YD9YE08A65OwH40 OhU7HXn6DLja8/TZy0aumfSTkU57lEZXzf7ZjOfjV1sDkGqeX2xsEvkK+oG2 sP9bdij9DX7CJXk=\ \>"], ImageRangeCache->{{{119.188, 353.375}, {296.188, 62}} -> {-24.2148, \ -5.64617, 0.0819863, 0.0819863}}], Cell[TextData[StyleBox["Figure 6: Zoom of 200%", FontFamily->"Arial"]], "Text", PageWidth->PaperWidth, TextAlignment->Center], Cell[TextData[{ StyleBox["Since the program RenderData only graphs a portion of the x-y \ plane, only a part of the zoomed picture is shown. ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" can be programmed to automatically scale its pictures, but then \ there would not be much difference between Figures 3 and 6. Notice that the \ parts of the zoomed picture don't have quite the same relationships to each \ other that they had in the original picture; this has happened because each \ image is viewed from the same point, and near objects are \"magnified\" more \ by the perspective transformation. The scaling transformation could be \ applied ", FontFamily->"Arial"], StyleBox["after", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[" the perspective projection. Of course, this will seem to change \ the center of projection of the zoomed image.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["Questions", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[":", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["1. Find the perspective projection using the Toyota data in matrix \ D using the following points as centers of projection. Sketch the result \ using ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[".\n\ta. (b,c,d)=(-5,10,10)\n\tb. (b,c,d)=(0,10,25)", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["2. Produce ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" code which would show motion relative to the Toyota along a line \ which has constant x-coordinate 0, constant z-coordinate 10, and a \ y-coordinate varying from -5 to 5.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["3. How might one develop ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" code which would show motion relative to the Toyota along a line \ which is not parallel to any of the coordinate axes? Produce a plan for \ doing this or actually produce the code itself.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["4. Rotate the Toyota 30\[Degree] about the y-axis, then perform \ the perspective projection with center of projection (0,10,25). Sketch the \ result using ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[". How does this sketch compare with that in Question 1b? ", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["5. Rotate the Toyota 45\[Degree] about the z-axis, then perform \ the perspective projection with center of projection (0,10,25). Sketch the \ result using ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[". How does this sketch compare with that in Question 1b?", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["6. Produce ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" code which would show motion the Toyota rotating about the x and \ y axes. Experiment with rotating about two axes simultaneously.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["7. Zoom in on the Toyota with a zoom factor of 150%, then perform \ the perspective projection \nwith center of projection (0,10,25). Sketch the \ result using ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[". How does \nthis sketch compare with that in Question 1b?", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["8. Produce ", FontFamily->"Arial"], StyleBox["Mathematica", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[" code which shows a \"zooming effect\" along the z-axis as the \ zoom parameter varies. Compare this approach to changing the centers of \ projection.", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["References", FontFamily->"Arial", FontWeight->"Bold"], StyleBox[":", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[TextData[{ StyleBox["1. Foley, James D., Andries van Dam, Steven K. Feiner, and John \ F. Hughes. ", FontFamily->"Arial"], StyleBox["Computer \nGraphics: Principles and Practice", FontFamily->"Arial", FontSlant->"Italic"], StyleBox[". Second Edition. Reading: Addison-Wesley, 1996.\n\nChapters 5 \ and 6 contain a wealth of information about transformations and viewing in \ two and three dimensions.\n", FontFamily->"Arial"] }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"RenderData", "[", RowBox[{"adjacency_", ",", " ", "data_"}], "]"}], ":=", RowBox[{"(", RowBox[{ RowBox[{"ptlist", "=", RowBox[{"{", "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"For", "[", RowBox[{ RowBox[{"i", "=", "1"}], ",", RowBox[{"i", "\[LessEqual]", "16"}], ",", RowBox[{"i", "++"}], ",", "\[IndentingNewLine]", RowBox[{"For", "[", RowBox[{ RowBox[{"j", "=", "i"}], ",", RowBox[{"j", "\[LessEqual]", "16"}], ",", RowBox[{"j", "++"}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"adjacency", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "\[Equal]", "1"}], ",", RowBox[{"{", RowBox[{ RowBox[{"pt", "=", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"AppendTo", "[", RowBox[{"pt", ",", RowBox[{ RowBox[{"Transpose", "[", "data", "]"}], "[", RowBox[{"[", "i", "]"}], "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"AppendTo", "[", RowBox[{"pt", ",", RowBox[{ RowBox[{"Transpose", "[", "data", "]"}], "[", RowBox[{"[", "j", "]"}], "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"AppendTo", "[", RowBox[{"ptlist", ",", "pt"}], "]"}]}], "}"}]}], "]"}]}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"g", "=", RowBox[{"{", "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"For", "[", RowBox[{ RowBox[{"i", "=", "1"}], ",", RowBox[{"i", "\[LessEqual]", RowBox[{"Length", "[", "ptlist", "]"}]}], ",", RowBox[{"i", "++"}], ",", "\[IndentingNewLine]", RowBox[{"AppendTo", "[", RowBox[{"g", ",", RowBox[{"Line", "[", RowBox[{"ptlist", "[", RowBox[{"[", "i", "]"}], "]"}], "]"}]}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Show", "[", RowBox[{ RowBox[{"Graphics", "[", "g", "]"}], ",", RowBox[{"PlotRange", "->", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "12"}], ",", "12"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "12"}], ",", "12"}], "}"}]}], "}"}]}], ",", RowBox[{"AspectRatio", "\[Rule]", "1"}]}], "]"}]}], ")"}]}], "\[IndentingNewLine]"}]], "Input", PageWidth->PaperWidth, InitializationCell->True] }, Open ]] }, AutoGeneratedPackage->Automatic, WindowSize->{912, 645}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, DockedCells->FEPrivate`If[ FEPrivate`SameQ[FEPrivate`$ProductIDName, "MathematicaPlayer"], FEPrivate`Join[{ Cell[ BoxData[ GraphicsBox[ RasterBox[CompressedData[" 1:eJztXXlYU9e27/fe++Pe9757be9tax1AkUGQAMokiLMWB9Q60Dreaq2tA1Zb LaJ1wjrVjg44KyKCAzIj8zwFSBjCkDCEBAjIKELRKhqSvJ3ssNmckxNGxX7d v+/od7LPPmuvtWJ+a++19jnqbdy5fON/v/XWWybgz//811tvKc9FA4RQmDVv AVdnbMpy5+KEBNgm7kT6t3uleuMbxxrVsqbI7T6WTVsrn7paNvPTRs87VUUC cNREx7e67HlpOVNhYt0x3qJ11LiaS1cGqhIBAQEBwWtHzg0vro5eps5Yjv74 /E9WC27fEeXmivLzM8+eZxtYKsYayMaMe2Y+U+a0S7b8oMz5kHzpfrnjVy+W 7nzh9EWHzbIO8w87TB1emDk817doHG1QFRM71AYREBAQEPQBcPIvSE8vMDQW 6Ojl6+oV6Izj6RrwLOx5do6RJrP4rKkKvTGKMWM7DFjta09Jt17r2HpV+qWH 7LOzslUnpEu+kzp+JbVb9XLS/OesqfW6E+qMLcuzOENtFgEBAQFBHwBjQXlp abb91OLRY4vG6BeNHc83sMgzss+fuCTefnXTBGtlLNA36NAf92TGCrHbrao9 ng/3eDV/6/lsx+WOLz2kq49L5++UOqxsmzBDomsumTRFxOMNtVkEBAQEBL0F KgqA87yNm0Sjxlbqm/KMJ2bOcWQvWpa6Ym2881q+48ziD2cK5s8VLFrIn+WQ vv6LxO2uydt2sbd/m73dNX/rbv7nXwvWbSlyXpuz4COuiW2x9YzygoKhtoyA gICAoFcQY1B+PORerWPEs5hceuFoTcDl6oBrVUFekkDPOr+Ldfcv1gVcrgu8 Wud/ufb+JUnYrapwH8kDn+oHPjXhPg/DbtWGeD8MvFETdE3sezZ2ynRBarr2 octLSrL9A4TpPXQjICAgIHilAPxf0Ql1MPjukGScde5XX9QG3mgIDquLSJTE pLeFR/4REvokLKItMrYtJq4tNq4tLKwlKrohh9eQV9CYndfIyW1iZz9OZIP+ 1YHhkrDwIo+LkSs3Zoc+KBcK8RFLBQJuYmLU6dMRn2/irFojuXCpoqhoiKwn +OtCGBIi9PYeai0ICIYYaCEAo0ClCspwIBKVLFsrMZ+Xf9i1NiywKTGnNjWv IT6Nf/Fic0zis6z8p5m8p5m5Tzh5T9I5TxKS29LYLUWlzcWipkJhU1ZBXSK3 Ijq9PCKlIiGjPDQueJzdzeFjr1ja+i1c4rXc+ecFC/c4TNltPP63d98LGz6i Zt16SWrqUHuC4K8IEAj4b70FDoGODjh/RaOkD9GCNzw83MXF5eTJk3w+f0gU IPgTAY8FIApUqSAuLc0/fKzUdK5w5voc971VUQ+q0/IakjJaElNCJk9JsZ/O v+7VnFPQmlvYkp3fks1rYXPApZa4+OaU1EcpqfVxiVVRCeWhMSWh0WUxifyQ 8O8/GLln2Du/Dnv/0N//8fXf/vf0P4dFvvd+wwjdjgkT6695DrUPCP7SKN28 uWTVKmU4GDasPClp0OXn5ORcuHBh0MX2BiAGBQQE7Nu3z9OT/MoIqBCks1Nu 3ky+dSs3MbEkPx/M/8uFwjI+v4TDKYqN5QcE8c56ZC1emWU4NdPOOWOhC9fd reJBYH1M0u+xSY/SOckLFj3UMc4bZZC0co0gKLQuO7+Ry6tncxpSMhrjkxoj ImtDgiVBASJ/v5K7t/N9bhUEB2beu/PV8A/OjxzvM1zHb/jIsrF6ckMjhZ5e h4VVddiDofYHAYESICKAcFDs4DDokocwFkD4+vqCcDCEChC8mRALBNX3Ajkr Pz2vb3hk5Ae/WVl62NoGWtukWdlmTrLhWNvzJ08rsbARmjlUWs5usJ7J27e9 +r53U0RMU2Law/Ss2PlO5QbmFaY2pXqmKfoTEnd8LQiPrmJzq5LYkrgkSWS0 JChY7O9fcvdOka9Pzs0bOf5+/Lv3ci1mSEwdpJNmyFl2cpOJCv3xHRYTq6Oj X6mlQm/vwcoDl+fmKqW9shwCwZADrAhgsmjQawdDHgvA6sDFxWWo8lQEbz4k Sanir77JMbVINxgfbTSeYz6xzX66YrKDwmKSwshQoT9GYTBOMX5CjpuL+N6t h5HxkvhUUUp6xDynIiOLIpYNn2VbYmqTO9YkYpJt8vEfBFHx5XEpwvCoMv+g 0jv3Cn198ry9Mjyv8e/fb4xKlq8/IluyQzZtldxmvtzERmZq9TA4uPeqAiqG v1NwgHPUDhb1Gn+/cI6HDvARXQITP3z6R/kIoL5lzx7UUnb8OBoI9ASX0C3w nN/50g+gBkUfujRcrFIOi4UPrUxTdBoIExdIeWQUaAfEBRQABwpP4ESgo4Py 3vBeJBwRXdm5c8iloA+0C9xSsnAh1BlqhfxMvxGOArUCfaADgRxgI5AAtaK7 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 "], {{0, 0}, {516, 41}}, {0, 255}, ColorFunction -> RGBColor], ImageSize -> {516, 41}, PlotRange -> {{0, 516}, {0, 41}}]], "DockedCell", Background -> GrayLevel[0.866682], CellFrame -> {{0, 0}, {0, 4}}, CellFrameColor -> RGBColor[0.690074, 0.12871, 0.194598], CellMargins -> {{0, 0}, {-3, 0}}, CellFrameMargins -> 0, ContextMenu -> None, ComponentwiseContextMenu -> {}], Cell[ BoxData[ GridBox[{{ GraphicsBox[ RasterBox[CompressedData[" 1:eJztWl1Ik1EYFrqNEoLMbHPmNkRrEhJERj93ra4cJvbDRIsyMk1pc03tTL1w aD+LfkQIJBkR/dBFdtHFDLywCykqoqgLIYRu6jbb8me933e+HT/P2fZN+sZ0 vg9n43zfec973nPe57zvOWNFDS2OhnU5OTlG+LyBj1S/ikAgEAgEAoFAIBAI xEpFMBh8jUgPYG0z7d7MAOYedm/Bko4Ca5tp92YGSCokle5AUiGpdAeSCkml O0RS/R1tjEajUIHvyIhdehPyLNZjrVSAgT5CK1Tmf32e+/qcdYEy+/4+vKTd oQJN89PjojbaHcrCzE8qn0RGfIxrEjcF0SomD49hYqDDUUSGKtUKWRMYz42L pFJDg1RPamGdlRWGuuDi2Yl+WHkoiy72W6jjgFeSm/wWKEAScCvtCxWpSzxt 1FPU9dJ76Lt8UnEmcVMQrWImUQE6nKJB7sgUKpb4LcpEtHiFpEpEKim2TI8n IhXv4pAHXCAJEAPIq7d5JFAOYYEGKHEstTbQAJKSx+XH5ZKKE+CmIFq1ZC/E SBVXoboJyMliKZKKgyapwLlK1ohHKgpYYfGRbnNpg4c8dP3prtckFQ0gUm5K miKpVZxnRZP4KcSziiU1bjhOobpJ2TtIqnhITipYZ7byydJfoDzMpT9ZWMo1 EHbgBBLyhOWzlmakUtKQnB/VuUYkFbWNjZXIJHEKnFVL0t+IXSQVU4iRKkUk JxVzhJI7hirpDpXOGzJ5eFLFvMNORxAlaJZhmtmZStQGAvSQA/FECSksH/kt VLMyokw5qHDOFU3ipiBaxZmtTSo8U2lBI1LF/BWNXZ0Y1LckLo9IqQdYIWdA 9T0uvPT2J2qjrUr2lGMRSzrq4eiIVIxFGC5bMZO4KYhWcWYnSn8gv3j7k+vJ GbVaSNXt9fo6O/XVib9Tpa+sClLdvtB0q+WSvjqRVGucVA/q6p9V1+irE0m1 xkk1cuLk2O49+upEUq1xUg1X14yZraSrS0ed+H+q9GFV/J+qx25/u9U40Nqa aUMQ2YMrFRWf8g0vDh9JvUvgYjPR+8KIyA5AyiNeb1Pe5ql840xxSV97eyq9 Hp1y3nE602waYoXC19GRqInIGHC57lY53Lm53/O2RQ3Fr6qqNXUG609/LLX1 ulOiHyL74D/XeLPxvPiexHDtsuulyexbv2GqwLRgNP8xl/W7XAQE1IUQ1nHw zNl5o2XYoc09RLbC5/E8te26V9+gfskY5SPkuss1abLc2Ljpm9E8Z7FFt++c POroJoQWn1wotQAPj9XMFZp/m6y9bndGpoNYCZBikbNuoqBwsPY4IxIrQJu+ trYf5pLRfOOXotJw6d7Zsv0LtkOPzzb1ENKjolagueVD5YGodUfEZH2372Cm p4X4X/wDFcRtOg== "], {{0, 0}, {199, 30}}, {0, 255}, ColorFunction -> RGBColor], ImageSize -> {199, 30}, PlotRange -> {{0, 199}, {0, 30}}], ButtonBox[ GraphicsBox[ RasterBox[CompressedData[" 1:eJztlDFuhFAMRJHS5w45Re6RI+wFcoOUtNtR0lJSUlNSUtNS0m9JXjTKaPQh UfpgCeT1n2+Px15ebu9vt6eqqp55Xnm+/I/L/p+1bbtt277vvJumIcKbnwWs 73vBsHVdE1bXNQ55Ho8HMOEd3L9tWRZ+6tRBrrjEMAwigHO/37M6SII40zRB Q7QLkpQWjKOu63RqGHHVIoOYYAR16oucinYGxUo2jqMIzPNMnpQRPF2nMkeS cCBDXsm7ZNZp6oZRS3wsIBFNIYM2iY8gYmJA8imqawHcOAKqio4KSp4O7Qjp K1nOUygasaG2hoKSaud3krkArggZzyhhTohP3Uz7E0mNu9g98oj26exOSTon fRUtn8IUJL+W80gyuz6OW3mgrSXXEv5dSaRTaRz9KQpY/knxtVomKdFQxvFT JZFR6pFBJWT5tbEvR9+H3F6S+GOSMC+DTHtrHYyh32Qu855cdhn2CUundjY= "], {{0, 0}, {55, 14}}, {0, 255}, ColorFunction -> RGBColor], ImageSize -> {55, 14}, PlotRange -> {{0, 55}, {0, 14}}], ButtonData -> { URL["http://store.wolfram.com/view/app/playerpro/"], None}, ButtonNote -> "http://store.wolfram.com/view/app/playerpro/"], GraphicsBox[ RasterBox[{{{132, 132, 132}, {156, 155, 155}}, {{138, 137, 137}, { 171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{ 138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, {171, 169, 169}}, {{138, 137, 137}, { 171, 169, 169}}, {{135, 135, 135}, {167, 166, 166}}}, {{0, 0}, {2, 14}}, {0, 255}, ColorFunction -> RGBColor], ImageSize -> {2, 14}, PlotRange -> {{0, 2}, {0, 14}}], ButtonBox[ GraphicsBox[ RasterBox[CompressedData[" 1:eJztlSGSg2AMhTuzfu+wB1qzR+gF9gbIWhwSW4lEV1ZWYyvxSPZb3vAmDdDq zpCZdvKH5CUvfwhfx9+f48fhcPjk983vXy922eU9paqqcRx9HGcZhiE+PZ1O KHVd24KOgt0WFKLQ27ZdJrper0JGcS5CVqs6n89yRpGl73tZBK6kkvv97kCe ChOlLEvbVW2kiYPoxKcYRdwWld00jS2EcFSFMYXCqbOcBJzL5aJcxK7SFEFB GQFn8AWupPUkMRfIJEK53W5d1z2hGVP7yohVbfanWoxAJQTfeywbT1+xK9mi GQGTj8FT0uRAN3Tdjl3SlNANP5WoabIIRP+x52ojLEgXs8fxs7+R1cCXNFH6 SVJhKZwx0+BxBZ7nraGNpBSrEFlA1khgRDcCRg1navIWTeVKPVmliaeaL+c4 tCmcknRHfjtWaS6HNtYmC1wYjGJ+6eKjJcficWgVssz1nGbabFtD682gZaIO MHXqkq/vyW3GFaQXliNuOhbz9lOHU3a6SrhWkCmnXC9pUoPBt1aQpquYrtJt 0f6Pazkd497W1MkSlxierkrrN254iz8oHqS0ByzxGzfOHx2yq9plYSl8l13e Xf4ArlmHrg== "], {{0, 0}, {77, 14}}, {0, 255}, ColorFunction -> RGBColor], ImageSize -> {77, 14}, PlotRange -> {{0, 77}, {0, 14}}], ButtonData -> { URL[ "http://www.wolfram.com/solutions/interactivedeployment/\ licensingterms.html"], None}, ButtonNote -> "http://www.wolfram.com/solutions/interactivedeployment/\ licensingterms.html"]}}, ColumnsEqual -> False, GridBoxAlignment -> {"Columns" -> {{Center}}, "Rows" -> {{Center}}}]], "DockedCell", Background -> GrayLevel[0.494118], CellFrame -> {{0, 0}, {4, 0}}, CellFrameColor -> RGBColor[0.690074, 0.12871, 0.194598], CellMargins -> 0, CellFrameMargins -> {{0, 0}, {0, -1}}, ContextMenu -> None, ComponentwiseContextMenu -> {}, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ NotebookLocate[#2]}]& ), Appearance -> None, ButtonFrame -> None, Evaluator -> None, Method -> "Queued"}]}, FEPrivate`If[ FEPrivate`SameQ[ FrontEnd`CurrentValue[ FrontEnd`EvaluationNotebook[], ScreenStyleEnvironment], "SlideShow"], { Inherited}, {}]], Inherited], PrintingCopies->1, PrintingPageRange->{Automatic, Automatic}, ShowCellLabel->False, Magnification->1, FrontEndVersion->"7.0 for Microsoft Windows (32-bit) (November 10, 2008)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[567, 22, 91, 1, 225, "Title"], Cell[661, 25, 897, 19, 221, "Text"], Cell[1561, 46, 2031, 51, 314, "Text"], Cell[3595, 99, 1518, 39, 130, "Input"], Cell[5116, 140, 821, 22, 128, "Text"], Cell[5940, 164, 5881, 171, 273, "Text"], Cell[11824, 337, 157, 5, 33, "Text"], Cell[11984, 344, 212, 7, 33, "Text"], Cell[12199, 353, 4216, 85, 330, "Input"], Cell[16418, 440, 266, 8, 52, "Text"], Cell[16687, 450, 10660, 536, 190, 7850, 485, "GraphicsData", "PostScript", \ "Graphics"], Cell[27350, 988, 128, 3, 33, "Text"], Cell[27481, 993, 1663, 46, 318, "Text"], Cell[29147, 1041, 720, 35, 55, "DisplayFormula"], Cell[29870, 1078, 237, 10, 33, "Text"], Cell[30110, 1090, 1249, 52, 55, "DisplayFormula"], Cell[31362, 1144, 462, 12, 71, "Text"], Cell[31827, 1158, 1189, 43, 76, "DisplayFormula"], Cell[33019, 1203, 150, 3, 33, "Text"], Cell[33172, 1208, 594, 23, 59, "DisplayFormula"], Cell[33769, 1233, 990, 31, 115, "Text"], Cell[34762, 1266, 1068, 47, 101, "DisplayFormula"], Cell[35833, 1315, 409, 13, 71, "Text"], Cell[36245, 1330, 342, 13, 83, "DisplayFormula"], Cell[36590, 1345, 207, 9, 33, "Text"], Cell[36800, 1356, 508, 16, 30, "Input"], Cell[37311, 1374, 151, 3, 33, "Text"], Cell[37465, 1379, 118, 4, 30, "Input"], Cell[37586, 1385, 1111, 30, 67, "Text"], Cell[38700, 1417, 1008, 25, 147, "Text"], Cell[39711, 1444, 445, 15, 30, "Input"], Cell[40159, 1461, 733, 22, 45, "Text"], Cell[40895, 1485, 332, 5, 71, "Text"], Cell[41230, 1492, 157, 5, 30, "Input"], Cell[41390, 1499, 126, 2, 33, "Text"], Cell[41519, 1503, 3003, 141, 122, 1432, 111, "GraphicsData", "PostScript", \ "Graphics"], Cell[44525, 1646, 146, 3, 33, "Text"], Cell[44674, 1651, 190, 7, 33, "Text"], Cell[44867, 1660, 415, 16, 93, "DisplayFormula"], Cell[45285, 1678, 583, 19, 30, "Input"], Cell[45871, 1699, 122, 2, 33, "Text"], Cell[45996, 1703, 118, 4, 30, "Input"], Cell[46117, 1709, 1160, 31, 67, "Text"], Cell[47280, 1742, 193, 3, 52, "Text"], Cell[47476, 1747, 476, 16, 30, "Input"], Cell[47955, 1765, 1006, 28, 39, "Text"], Cell[48964, 1795, 218, 4, 52, "Text"], Cell[49185, 1801, 129, 4, 30, "Input"], Cell[49317, 1807, 126, 2, 33, "Text"], Cell[49446, 1811, 3642, 151, 112, 1428, 111, "GraphicsData", "PostScript", \ "Graphics"], Cell[53091, 1964, 121, 3, 33, "Text"], Cell[53215, 1969, 671, 9, 147, "Text"], Cell[53889, 1980, 405, 15, 93, "Text"], Cell[54297, 1997, 338, 9, 72, "Text"], Cell[54638, 2008, 1541, 45, 130, "Input"], Cell[56182, 2055, 372, 9, 71, "Text"], Cell[56557, 2066, 302, 5, 71, "Text"], Cell[56862, 2073, 543, 12, 109, "Text"], Cell[57408, 2087, 488, 17, 79, "Text"], Cell[57899, 2106, 628, 19, 50, "Input"], Cell[58530, 2127, 177, 3, 52, "Text"], Cell[58710, 2132, 710, 23, 79, "Text"], Cell[59423, 2157, 628, 19, 50, "Input"], Cell[60054, 2178, 628, 19, 50, "Input"], Cell[60685, 2199, 232, 4, 52, "Text"], Cell[60920, 2205, 155, 5, 50, "Input"], Cell[61078, 2212, 561, 22, 107, "Text"], Cell[61642, 2236, 311, 10, 33, "Text"], Cell[61956, 2248, 92, 3, 30, "Input"], Cell[62051, 2253, 422, 12, 71, "Text"], Cell[62476, 2267, 508, 16, 30, "Input"], Cell[62987, 2285, 129, 4, 30, "Input"], Cell[63119, 2291, 179, 3, 52, "Text"], Cell[63301, 2296, 476, 16, 30, "Input"], Cell[63780, 2314, 907, 29, 39, "Text"], Cell[64690, 2345, 141, 3, 33, "Text"], Cell[64834, 2350, 110, 3, 30, "Input"], Cell[64947, 2355, 116, 2, 33, "Text"], Cell[65066, 2359, 3666, 151, 118, 1438, 111, "GraphicsData", "PostScript", \ "Graphics"], Cell[68735, 2512, 134, 3, 33, "Text"], Cell[68872, 2517, 316, 5, 71, "Text"], Cell[69191, 2524, 2155, 61, 150, "Input"], Cell[71349, 2587, 740, 14, 147, "Text"], Cell[72092, 2603, 281, 11, 79, "Text"], Cell[72376, 2616, 176, 3, 52, "Text"], Cell[72555, 2621, 281, 11, 79, "Text"], Cell[72839, 2634, 455, 14, 30, "Input"], Cell[73297, 2650, 112, 2, 33, "Text"], Cell[73412, 2654, 91, 3, 30, "Input"], Cell[73506, 2659, 1185, 38, 77, "Input"], Cell[74694, 2699, 206, 3, 52, "Text"], Cell[74903, 2704, 1068, 34, 70, "Input"], Cell[75974, 2740, 764, 25, 45, "Text"], Cell[76741, 2767, 149, 3, 33, "Text"], Cell[76893, 2772, 1928, 54, 130, "Input"], Cell[78824, 2828, 137, 4, 30, "Input"], Cell[78964, 2834, 133, 4, 33, "Text"], Cell[79100, 2840, 3262, 145, 302, 1357, 109, "GraphicsData", "PostScript", \ "Graphics"], Cell[82365, 2987, 128, 3, 33, "Text"], Cell[82496, 2992, 990, 22, 166, "Text"], Cell[83489, 3016, 158, 7, 33, "Text"], Cell[83650, 3025, 400, 11, 90, "Text"], Cell[84053, 3038, 381, 11, 71, "Text"], Cell[84437, 3051, 413, 11, 71, "Text"], Cell[84853, 3064, 412, 11, 71, "Text"], Cell[85268, 3077, 411, 11, 71, "Text"], Cell[85682, 3090, 341, 10, 52, "Text"], Cell[86026, 3102, 417, 11, 90, "Text"], Cell[86446, 3115, 360, 11, 52, "Text"], Cell[86809, 3128, 159, 7, 33, "Text"], Cell[86971, 3137, 479, 12, 128, "Text"], Cell[87453, 3151, 2744, 73, 270, "Input", InitializationCell->True] }, Open ]] } ] *) (* End of internal cache information *) (* NotebookSignature ewpaf9Ob#Bh9kDgzM65135Wh *)