• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            The Fourth Dimension Space

            枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

            向量的旋轉

            向量的旋轉

            基礎的2-D繞原點旋轉

            在2-D的迪卡爾坐標系中,一個位置向量的旋轉公式可以由三角函數的幾何意義推出。比如上圖所示是位置向量R逆時針旋轉角度B前后的情況。在左圖中,我們有關系:

              x0 = |R| * cosA

              y0 = |R| * sinA

              =>

              cosA = x0 / |R|

              sinA = y0 / |R|

              在右圖中,我們有關系:

              x1 = |R| * cos(A+B)

              y1 = |R| * sin(A+B)

              其中(x1, y1)就是(x0, y0)旋轉角B后得到的點,也就是位置向量R最后指向的點。我們展開cos(A+B)和sin(A+B),得到

              x1 = |R| * (cosAcosB - sinAsinB)

              y1 = |R| * (sinAcosB + cosAsinB)

              現在把

              cosA = x0 / |R|

              sinA = y0 / |R|

              代入上面的式子,得到

              x1 = |R| * (x0 * cosB / |R| - y0 * sinB / |R|)

              y1 = |R| * (y0 * cosB / |R| + x0 * sinB / |R|)

              =>

              x1 = x0 * cosB - y0 * sinB

              y1 = x0 * sinB + y0 * cosB

              這樣我們就得到了2-D迪卡爾坐標下向量圍繞圓點的逆時針旋轉公式。順時針旋轉就把角度變為負:

              x1 = x0 * cos(-B) - y0 * sin(-B)

              y1 = x0 * sin(-B) + y0 * cos(-B)

              =>

              x1 = x0 * cosB + y0 * sinB

              y1 = -x0 * sinB + y0 * cosB

              現在我要把這個旋轉公式寫成矩陣的形式,有一個概念我簡單提一下,平面或空間里的每個線性變換(這里就是旋轉變換)都對應一個矩陣,叫做變換矩陣。對一個點實施線性變換就是通過乘上該線性變換的矩陣完成的。好了,打住,不然就跑題了。

            所以2-D旋轉變換矩陣就是:

            [cosA  sinA]      [cosA -sinA]
            [-sinA cosA] 或者 [sinA cosA]

              我們對點進行旋轉變換可以通過矩陣完成,比如我要點(x, y)繞原點逆時針旋轉:

                      [cosA  sinA]
            [x, y] x  [-sinA cosA] = [x*cosA-y*sinA  x*sinA+y*cosA]
            為了編程方便,我們把它寫成兩個方陣

            [x, y]   [cosA  sinA]   [x*cosA-y*sinA  x*sinA+y*cosA]
            [0, 0] x [-sinA cosA] = [0                        ]

            也可以寫成

            [cosA -sinA]   [x 0]   [x*cosA-y*sinA  0]
            [sinA  cosA] x [y 0] = [x*sinA+y*cosA  0]

            三、2-D的繞任一點旋轉

              下面我們深入一些,思考另一種情況:求一個點圍繞任一個非原點的中心點旋轉。

              我們剛剛導出的公式是圍繞原點旋轉的公式,所以我們要想繼續使用它,就要把想要圍繞的那個非原點的中心點移動到原點上來。按照這個思路,我們先將該中心點通過一個位移向量移動到原點,而圍繞點要保持與中心點相對位置不變,也相應的按照這個位移向量位移,此時由于中心點已經移動到了圓點,就可以讓同樣位移后的圍繞點使用上面的公式來計算旋轉后的位置了,計算完后,再讓計算出的點按剛才的位移向量逆位移,就得到圍繞點繞中心點旋轉一定角度后的新位置了。看下面的圖


             


            現在求左下方的藍色點圍繞紅色點旋轉一定角度后的新位置。由于紅色點不在原點,所以可以通過紅色向量把它移動到原點,此時藍色的點也按照這個向量移動,可見,紅色和藍色點的相對位置沒有變。現在紅色點在原點,藍色點可以用上面旋轉變換矩陣進行旋轉,旋轉后的點在通過紅色向量的的逆向量回到它實際圍繞下方紅色點旋轉后的位置。
            在這個過程中,我們對圍繞點進行了三次線性變換:位移變換-旋轉變換-位移變換,我們把它寫成矩陣形式:
            設紅色向量為(rtx, rty)

            [x y 1]   [1    0]   [cosA  sinA 0]   [1      0]   [x' y' -]
            [0 1 0] x [0    0] x [-sinA cosA 0] x [0      0] = [-  -]
            [0 0 1]   [rtx rty 1]   [0       1]   [-rtx -rty 1]   [-  -]

              最后得到的矩陣的x'和y'就是我們旋轉后的點坐標。

            線性變換 , 呂新民 你連這么簡單的東西都將不清楚。。。。

            posted on 2010-04-03 18:58 abilitytao 閱讀(1463) 評論(0)  編輯 收藏 引用

            中文字幕成人精品久久不卡| 蜜臀久久99精品久久久久久| 思思久久99热只有频精品66| 久久人人爽人人爽人人片AV麻烦| 久久婷婷色综合一区二区| 久久久久久九九99精品| 久久高潮一级毛片免费| 一本一本久久A久久综合精品| 国产精品青草久久久久婷婷| 久久精品成人欧美大片| 少妇高潮惨叫久久久久久| 久久亚洲国产成人影院网站| 色欲av伊人久久大香线蕉影院| 国产叼嘿久久精品久久| 色婷婷综合久久久久中文| 人人狠狠综合久久亚洲| 99久久精品久久久久久清纯| 婷婷综合久久中文字幕蜜桃三电影 | 一本色道久久综合亚洲精品| 久久国产精品99精品国产987| 国产成人综合久久精品红| 人人狠狠综合久久亚洲高清| 成人午夜精品久久久久久久小说| 亚洲欧美一区二区三区久久| 中文字幕精品久久久久人妻| 成人妇女免费播放久久久| 九九精品久久久久久噜噜| 99久久国产主播综合精品| 成人久久综合网| 久久国产亚洲高清观看| 午夜天堂av天堂久久久| 久久频这里精品99香蕉久| 亚洲午夜无码AV毛片久久| 亚洲成人精品久久| 岛国搬运www久久| 美女写真久久影院| 日本免费久久久久久久网站 | 久久精品国产99国产精品导航 | 国产免费久久精品丫丫| 国产呻吟久久久久久久92| 久久青青草原精品影院|