Геометрические преобразования в компьютерной графике: Конспект лекций

  • Published on
    08-Dec-2016

  • View
    243

  • Download
    4

Embed Size (px)

Transcript

<ul><li><p>.. </p><p> 2011</p></li><li><p> 681.3</p><p> ..</p><p> . </p><p>. : , 2011. 50 .</p><p> . </p><p> , , , </p><p> . </p><p> , </p><p> .</p><p>2</p></li><li><p> ..................................................................................................... 4</p><p>1 .............................. 7</p><p>1.1 ................... 7</p><p>1.2 ........................................... 12</p><p>2 .................................... 18</p><p>2.1 ............................................................... 18</p><p>2.2 . ....................................................................... 22</p><p>3 ............................... 29</p><p>3.1 ................. 29</p><p>3.2 ..................................... 31</p><p>4 ................................................................................. 45</p><p>3</p></li><li><p> 1951 , </p><p> () . </p><p> : </p><p> , , </p><p>- , </p><p>. </p><p> 60- , </p><p> ( ) </p><p> Sketchpad </p><p> (1963 .), General Motors </p><p> (1964 .). </p><p> , </p><p>. </p><p>, , , , </p><p> , </p><p> , </p><p> , , , </p><p> . </p><p>( ), ( </p><p> ), , </p><p> ( ), ( </p><p> ), ( , </p><p> ) . </p><p>4</p></li><li><p> , , , </p><p> . , </p><p>, : () </p><p>, , </p><p> .</p><p> . , </p><p> () , </p><p>(). , </p><p> , ; </p><p> , </p><p> ; </p><p> , </p><p> , </p><p> .</p><p> , </p><p> . , </p><p> , , </p><p>:</p><p> ( </p><p> , , );</p><p> ( </p><p> );</p><p> ( </p><p>, , );</p><p>5</p></li><li><p> ( </p><p>, </p><p> );</p><p> ( , , </p><p>, , );</p><p> ( , </p><p> );</p><p> ( , .. </p><p> ).</p><p> , , </p><p> , . </p><p> . , </p><p> , </p><p> . </p><p>. </p><p>, ( </p><p>). </p><p> OpenGL </p><p>DirectX. </p><p> .</p><p> , </p><p> .</p><p>6</p></li><li><p>1 </p><p>1.1 </p><p> , </p><p>- , . </p><p> () </p><p> . </p><p>. , </p><p> (), </p><p> . </p><p> () . </p><p> (). </p><p> , . </p><p> .</p><p>. . </p><p> , () , (, </p><p>) . </p><p>, </p><p> . , </p><p> , () () </p><p>7</p></li><li><p>. . </p><p> . </p><p> .</p><p> () </p><p> , , </p><p> . , </p><p> ( ) </p><p> . </p><p> , </p><p> , , </p><p>. </p><p> . , </p><p> . </p><p> , , </p><p> . </p><p> . </p><p> : , </p><p> .</p><p> . </p><p> . () </p><p>: , , , . </p><p>8</p></li><li><p> [1].</p><p> , </p><p> : </p><p>. , </p><p> (). </p><p> ( rendering) </p><p> . </p><p> (). </p><p> T&amp;L (transformation </p><p>and lighting), </p><p> , </p><p> . </p><p> . ( ) </p><p> , </p><p>. </p><p> , </p><p> . </p><p> (rasterization) </p><p>, </p><p>. </p><p> . </p><p>.</p><p> . </p><p>, . </p><p>. , </p><p>9</p></li><li><p> , </p><p> .</p><p> . </p><p> , </p><p>. </p><p> ( ) </p><p>- .</p><p> , </p><p> . </p><p>( ) .</p><p> , . </p><p>, </p><p> , </p><p> . </p><p> ( ), </p><p> . </p><p> . </p><p> () </p><p>. . </p><p> , . </p><p> . </p><p>10</p></li><li><p> . </p><p> . </p><p> . </p><p> (, </p><p>), </p><p>, </p><p> . </p><p> . </p><p>.</p><p> , . , </p><p> , </p><p>() , . </p><p> , </p><p> .</p><p>, , </p><p> . </p><p> .</p><p>(), . </p><p>. () </p><p>11</p></li><li><p> (), </p><p> . </p><p>. </p><p> . </p><p> (, ) .</p><p> , </p><p>(, ). , </p><p> . </p><p> , </p><p> .</p><p> .</p><p>1.2 </p><p> 1.1 </p><p> , </p><p>. </p><p> (host - ), </p><p> (graphics processing unit GPU). </p><p> . </p><p> , , </p><p> , </p><p>, , </p><p>12</p></li><li><p> , . </p><p> - </p><p> . </p><p> , . </p><p>. , </p><p> . </p><p>, . </p><p> . </p><p> , </p><p> , . </p><p> () </p><p> . </p><p> . </p><p> , </p><p> , </p><p> . </p><p> ( ) . </p><p> , </p><p> , </p><p> . , -</p><p>, , </p><p>, -, , </p><p> . </p><p>13</p></li><li><p> , , , </p><p>. , , </p><p> . </p><p> . , </p><p> , </p><p> . </p><p> , , </p><p> . </p><p> , , </p><p> . , </p><p> , </p><p> . </p><p> , </p><p> . </p><p> .</p><p> () </p><p> . , </p><p> , </p><p> (). </p><p> . </p><p> . </p><p> . </p><p> , </p><p>14</p></li><li><p> . </p><p> : </p><p> , </p><p> . </p><p> , </p><p> . </p><p> , </p><p>.</p><p>, </p><p>. </p><p> . </p><p> . , </p><p>, , </p><p> . (tessellation). </p><p> . </p><p>, . </p><p>. </p><p>, </p><p>. </p><p> . , </p><p> , </p><p>. -, </p><p>15</p></li><li><p>, (), </p><p> . -, </p><p> () , </p><p> . , -, </p><p> , </p><p> , </p><p> . </p><p> . , </p><p>. 1 , </p><p> . a b (a) </p><p> (b) . </p><p>b</p><p>a</p><p>a*</p><p>b*</p><p>, V</p><p>V</p><p>x</p><p>z</p><p>z</p><p>x</p><p>V</p><p>a*</p><p>b*</p><p>a</p><p>b</p><p>, z</p><p> 1 </p><p>16</p></li><li><p> , </p><p> . </p><p> , </p><p> , </p><p>. </p><p> [1]. </p><p>.</p><p> , , </p><p>, . </p><p> , </p><p>. , </p><p> . , </p><p> . </p><p> , </p><p> () , , </p><p> . </p><p>.</p><p> () </p><p> . </p><p>. , </p><p> , . </p><p> . </p><p> , , </p><p>-, -, -. </p><p>17</p></li><li><p> , , </p><p> . </p><p> , , , </p><p> . </p><p> , </p><p> .</p><p>2 </p><p>2.1 </p><p> , </p><p> , </p><p> . </p><p> , </p><p> . </p><p> , , </p><p> . </p><p> .</p><p>, ( ) </p><p> , </p><p>( ) .</p><p> , </p><p>, P </p><p> P , </p><p>18</p></li><li><p> , P </p><p> , . </p><p> , </p><p> , </p><p> .</p><p> . </p><p> x, y. </p><p> , , </p><p> :</p><p>,</p><p>,</p><p>02221</p><p>01211</p><p>++=</p><p>++=</p><p>yytxtyxytxtx</p><p> (2.1)</p><p> x, y , x, y </p><p>; tij, x0, y0 , </p><p>.02221</p><p>1211 tttt</p><p> . </p><p> . tij, x0, </p><p>y0 , </p><p> . </p><p> , </p><p> . , </p><p>, . </p><p>19</p></li><li><p> , </p><p> x0 y0 </p><p>. </p><p> (xOy) ( </p><p> xOy) :</p><p>,</p><p>,</p><p>0</p><p>0</p><p>+=</p><p>+=</p><p>yyyxxx</p><p> x0, y0 xOy xOy .</p><p> ( ) </p><p> () </p><p> ( ) :</p><p>,cossin,sincos</p><p>yxyyxx</p><p>+=</p><p>=</p><p> .</p><p> , , , </p><p> x, y, x, y .</p><p>. , </p><p> ( ). </p><p>, , ykyxkx yx ==</p><p>20</p></li><li><p> k x , k y 0 .</p><p> k x, y &gt; 1 , k x, y &lt; 1 </p><p>, k x k y .</p><p> () </p><p> , . </p><p>, , </p><p> :</p><p>.2cos2sin,2sin2cos</p><p>yxyyxx</p><p>=</p><p>+=</p><p> 2. , </p><p> , </p><p> (2.1). </p><p>P*</p><p>x*p x*xp</p><p>yp</p><p>y*p</p><p>P</p><p>0*</p><p>y*</p><p>x*xp</p><p>yp P</p><p>0*</p><p>y*</p><p>y*p P*</p><p>x*p</p><p>x*px*</p><p>xpyp</p><p>y*pP</p><p>0*</p><p>y*</p><p>xf</p><p>y</p><p>xxp</p><p>P</p><p>0*</p><p>y</p><p>Y*0</p><p>x*0</p><p>P ypy*p</p><p>x*p x*</p><p>y*</p><p>a </p><p> 2 (), (), () ()</p><p>21</p></li><li><p> . </p><p>-, </p><p> () . -, </p><p> ( ). </p><p> :</p><p>,Tyxyx = (2.2)</p><p> T .</p><p> x, y </p><p>- yx T. T </p><p> (2.1), </p><p> :</p><p>.</p><p>00</p><p>2212</p><p>2111</p><p>=</p><p>yxtttt</p><p>T</p><p>(2.2). , </p><p> . </p><p> (2.2) -</p><p> yxyx , , </p><p> . </p><p> .</p><p>2.2 . </p><p>22</p></li><li><p> n- , </p><p> , (n+1)- , </p><p> . </p><p> . </p><p> P </p><p> (x, y). </p><p> [w1 w2 w3], </p><p> P :</p><p>.,3</p><p>2</p><p>3</p><p>1 ywwx</p><p>ww</p><p>== (2.3)</p><p> w3 . </p><p>, </p><p> (x,y,w), 3. </p><p>P (xh,yh,h)</p><p>P (x,y, ) 1</p><p>P(x,y)</p><p>y</p><p>x x</p><p>w</p><p>1</p><p>0</p><p>y</p><p> w=1</p><p> 3 </p><p>23</p></li><li><p> P(x,y) w1, w2, w3 , (0, 0, 0) </p><p> P (x, y, 1). , P </p><p>P, P c (xh, yh, h), h </p><p>. , </p><p>(2.3). </p><p> . </p><p> : (x : y : 1), h=1 , </p><p>: (w1 : w2 : w3). </p><p> ( w1, w2, w3) </p><p> ( x, y, z), </p><p> , , </p><p>, A(xA:yA:1). </p><p>, </p><p> , , KA =| xA yA 1|.</p><p> :</p><p>100</p><p>11</p><p>00</p><p>2212</p><p>2111</p><p>=</p><p>yxtttt</p><p>yxyx</p><p> K = K T, (2.4)</p><p> .</p><p> K T (2.1) </p><p> 1=1. </p><p>, </p><p> . </p><p>24</p></li><li><p>, (translation ) </p><p>:</p><p>,1010001</p><p>00</p><p>=</p><p>yxTR</p><p> (rotation) </p><p>,1000cossin0sincos</p><p>=RT</p><p> (scaling) </p><p>,1000000</p><p>y</p><p>x</p><p>mm</p><p>SC =</p><p> (reflection) </p><p>.10002cos2sin02sin2cos</p><p>=RF</p><p>, , </p><p> x (=0) y (=90). </p><p> , </p><p>(2.4) . </p><p> .</p><p> , </p><p> , </p><p> [2].</p><p>25</p></li><li><p> 1. xc, yc. </p><p> RT , </p><p> , </p><p> . , RT, </p><p> , , </p><p> . (x : y : 1) </p><p> . , </p><p> TR. </p><p> RT. </p><p> . , </p><p> () , </p><p> . </p><p> . </p><p> . , ( ) </p><p> : , </p><p> . </p><p>,1010001</p><p>1000cossin0sincos</p><p>1010001</p><p>11</p><p>CCCC yxyxyxyx </p><p>= </p><p> : .21 TRRTTRKK =</p><p> () </p><p>26</p></li><li><p>. , </p><p>(2.4) </p><p> .</p><p> 2. P, P </p><p> (xc, yc). </p><p> ( ), </p><p> ( ). </p><p> : </p><p> , . </p><p> . </p><p> RF , </p><p> , </p><p> . , </p><p> ( ). </p><p>:</p><p>.1010001</p><p>100010001</p><p>100010001</p><p>1010001</p><p>11</p><p>CCCC</p><p>PPPP</p><p>yxyxyxyx </p><p>=</p><p> ( ) </p><p> , </p><p> .</p><p> 3. xc, yc </p><p> .</p><p>27</p></li><li><p>, </p><p> 1, . </p><p> , </p><p> : </p><p>.100020002</p><p>=SC</p><p> :</p><p>.21 SCTRRTTRKK =</p><p> , , , TR3 </p><p> . , </p><p>. </p><p> .</p><p>! </p><p> -. -</p><p>. . </p><p> [2]. </p><p> , (2.4), K T </p><p>, . , </p><p> , </p><p>, , </p><p> . , </p><p> 1 :</p><p>28</p></li><li><p>.1100</p><p>1001</p><p>1000cossin0sincos</p><p>1001001</p><p>1yx</p><p>yx</p><p>yx</p><p>yx</p><p>C</p><p>C</p><p>C</p><p>C</p><p>=</p><p>3 </p><p>3.1 </p><p> . () </p><p>, </p><p> , . </p><p> , </p><p> . </p><p> (), </p><p> . </p><p> , x0y ( </p><p> z=0). , </p><p> , </p><p> . , </p><p> , </p><p> , . </p><p>, . , </p><p>29</p></li><li><p> , </p><p> 1.2.</p><p> : , , </p><p> . </p><p>. </p><p> , </p><p>. , </p><p> , </p><p> , </p><p>, </p><p>. </p><p> . </p><p> , 4. x </p><p> y, y z, z x , </p><p> . </p><p>z</p><p>z</p><p>y</p><p>yx x</p><p> 4 () () </p><p>30</p></li><li><p> , </p><p> xOy, V </p><p> z, 5. </p><p>z*</p><p>x*</p><p>y*P(x*,y*,z*)</p><p>O*</p><p>x*s</p><p>Ps</p><p>y*s</p><p>Pxz</p><p>Pyz</p><p>V z *(0,0,- )v</p><p> 5 </p><p> . , </p><p> , </p><p> . </p><p> , , </p><p> , .</p><p>3.2 </p><p> , </p><p> , .</p><p> , </p><p> , , </p><p>31</p></li><li><p>x, y, z , , , , </p><p> x*, y*, z*, </p><p>,</p><p>,</p><p>,</p><p>0333231</p><p>0232221</p><p>0131211</p><p>+++=</p><p>+++=</p><p>+++=</p><p>zztytxtzyztytxty</p><p>xztytxtx (3.1)</p><p> tij, 000 ,, zyx , </p><p>.0</p><p>333231</p><p>232221</p><p>131211</p><p>ttttttttt</p><p> : , , </p><p>. </p><p>. , </p><p> , </p><p> . </p><p> , , </p><p> , </p><p> , . </p><p> , : </p><p>(x: y: z: 1), (xh: yh: zh: h), h0 </p><p>.</p><p> :</p><p>,11 Tzyxzyx = (3.2)</p><p> .</p><p> ( </p><p>TR):</p><p>32</p></li><li><p>,1010000100001</p><p>000</p><p>=</p><p>zyx</p><p>TR</p><p> 000 ,, zyx .</p><p> , </p><p> . </p><p> , ( ) </p><p> . </p><p> tij (3.1) </p><p> , </p><p> . 6 </p><p> x (xyz). </p><p> , 6 </p><p>, , . </p><p>z*</p><p>y*</p><p>x*</p><p>x</p><p> , </p><p> . , </p><p>33</p><p> 6 </p></li><li><p> , . </p><p>, (3.1) t11 x </p><p> x* , t12 x y* </p><p> 3.1.</p><p> 3.1 </p><p> x y z</p><p>x t11 t12 t13y t21 t22 t23z t31 t32 t33</p><p>, </p><p>.</p><p>1000000</p><p>332313</p><p>322212</p><p>312111</p><p>ttttttttt</p><p>RT = </p><p> : x ( ), y (), z (), 7. , </p><p> . </p><p> , , ( ) , </p><p> . </p><p>34</p></li><li><p> . </p><p> (3.2) RTx, </p><p>RTy, RTz, </p><p> . </p><p>. :</p><p>,</p><p>10000cossin00sincos00001</p><p>=xRT</p><p>,</p><p>10000cos0sin00100sin0cos</p><p>=yRT</p><p>,</p><p>1000010000cossin00sincos</p><p>=zRT</p><p> -:</p><p>35</p><p>z</p><p>yx </p><p> 7 </p></li><li><p>,10000cossin00sincos00001</p><p>=xRT</p><p>,</p><p>10000cos0sin00100sin0cos</p><p>=yRT</p><p>.</p><p>1000010000cossin00sincos</p><p>=zRT</p><p> , </p><p> ( ) </p><p> SC:</p><p>,</p><p>1000000000000</p><p>z</p><p>y</p><p>x</p><p>kk</p><p>k</p><p>SC =</p><p> kx, ky, kz - . </p><p> , </p><p> , </p><p> . , </p><p> . </p><p>36</p></li><li><p> , x,y,z </p><p> xy, , </p><p> 5. PS P . PS s. </p><p>V(0,0, vz ) </p><p> )1(</p><p>*</p><p>+</p><p>=</p><p>v</p><p>s</p><p>zz</p><p>xx </p><p> )1(</p><p>*</p><p>+</p><p>=</p><p>v</p><p>s</p><p>zz</p><p>yy (3.3)</p><p> .0* =sz</p><p> 5, </p><p> xz yz. PXZ , PYZ </p><p> .</p><p> :</p><p>.</p><p>1000</p><p>1000</p><p>00100001</p><p>=</p><p>vzPR</p><p>37</p></li><li><p> , </p><p> , </p><p> . , PR -</p><p> 1 zyx , </p><p> ( )hhzhyhx sss ::: :.1 ,0 , , +</p><p>====</p><p>vsss z</p><p>zhhzyhyxhx</p><p> h ( ) sss zyx ,, , (3.3), </p><p> PR. </p><p> , vz , </p><p> .</p><p> () </p><p> . </p><p> , . , </p><p> xy :</p><p>.</p><p>10 00010000 1000 01</p><p>=xyRF</p><p> , </p><p> ( </p><p> );</p><p> ;</p><p>38</p></li><li><p> . </p><p> , , </p><p> ( </p><p>).</p><p> . , </p><p> , : </p><p> - -. </p><p>- </p><p> . </p><p> 1. </p><p> (xA, yA, zA) : </p><p> , </p><p> (xC, yC, zC) </p><p> . </p><p> V (0,0, vz ), </p><p>, .</p><p> . </p><p> . , </p><p> , </p><p> 44. </p><p> , </p><p>39</p></li><li><p> , </p><p> 1, hhzhyhx sAsAsA . </p><p> . </p><p> V, </p><p> x, y, z. </p><p> z. </p><p>z, . </p><p> . </p><p>, . , </p><p>, z </p><p> . , </p><p> .</p><p> RTz </p><p>, . </p><p>, </p><p> . </p><p> .</p><p> . , </p><p>, . </p><p> , </p><p> . </p><p>40</p></li><li><p>, , </p><p>, . </p><p>. , , , </p><p> , </p><p> .</p><p> , </p><p> , :</p><p>( ) ( )( ) ( )</p><p>.</p><p>10 0 0 010 0 00 10 00 0 1</p><p>1010000100001</p><p>1000010000cos sin 00sincos </p><p>1010000100001</p><p>1000</p><p>1000</p><p>00100001</p><p>1</p><p>=</p><p>CCC</p><p>CCCv</p><p>AAAsAsAsA</p><p>zyx</p><p>zyxz</p><p>zyxhhzhyhx</p><p> , , </p><p> .</p><p> 2. </p><p> , - </p><p> x, y, z, www zyx 000 ,, . </p><p> x, y, z vvv zyx 000 ,,</p><p>41</p></li><li><p>. -. </p><p>. . </p><p> , </p><p> . </p><p> , </p><p> , , </p><p> . , </p><p> . </p><p>, , </p><p> . , </p><p>, , </p><p> , , , </p><p> . </p><p>(). </p><p>- 1ppp zyxKP

Recommended

View more >