現在面試Silverlight的時候,很多都提到了電腦圖形學,我當時一點都不會,雖然面試通過,但是還是想去接觸一下電腦圖形學。
而電腦圖形學是一個很複雜的東西,涉及到高等數學的所有知識:微積分,線性代數,立體幾何,機率,而且還涉及到物理方面的一些知識。所以比較複雜,其實我們沒必要搞的很複雜,但是稍微理解一下,比如:向量,顏色,光線等,然後把關於座標計算的那一塊學好就可以了。
所謂笛卡爾座標系 就是正交線性座標系 他是一個數學概念, 並沒有規定如何去畫.
就傳統教學而言, 二維笛卡爾座標系往往被繪製成y向上,x向右, 兩軸成直角. 這源自古老的建築學以及三角測繪法。建築的高度應該是從地面向上算的。你可以想象若是y從房頂向下(於是座標系隨著房高浮動),或者從地面向下(於是地窖座標是正數,而主體會是負數)會是多麼不自然。
但這並不是必須的。俯視圖如何定向都沒有關係;事實上,連軸是不是叫做x, y都沒有規定, 又談何xy的正反向呢?
當我們看看初等物理時,就會發現我們需要先指定參考系;又常常在笛卡爾座標系下繪製 電壓-時間, 路程-加速度 映像.
在空間幾何中, 你就會看到任意方向繪製的3維笛卡爾座標系. 其中x,y, z任意兩軸可以任意指定方向,不過一般滿足Z的方向為 X <B>x </B>Y <B>[注2]</B> .當然這是為了叉乘運算的方便.
至於電腦為什麼採用y向下的座標系呢? 這同樣是有傳統的: CRT顯示器的掃描方式是從上到下按行掃描<B>[注3]</B>, 第一行在最上面, 往下依次數. 同樣,為了便於顯示,顯卡中的渲染緩衝也是這樣布置畫面的,大部分位元影像格式譬如bmp, jpg亦如此。他的另一個好處是: 與我們的閱讀習慣相同。我們知道,早期的電腦主要用於處理文本, 而文本無論在顯示器上還是在儲存空間內, 都是從上到下逐行排布的。你同樣可以想象,上面這幾處若是把y軸反過來朝上會造成多大麻煩,所以圖形學傳統上採用這種y軸向下的座標系
事實上只要你從頭到尾都使用這個座標系, 他沒什麼不合適的. 去除你心中根深蒂固的老座標系把( 事實上本身就不存在... )
, Silverlight的所有概念都是以y向下的座標係為基礎的. 它和Math對象配合非常完美
當然, y軸向上還是向下是有區別的, 它意味著x運算(或者說潛在的z軸)反向了,於是所謂順時針和逆時針的意義變得不同:你用計算平面正反向, 或者進行向量運算判斷上下的時候要注意這一點.