原创 MVP變換

視圖變換時,讓物體和攝像機一起運動,把攝像機放到原點,向上方向爲y軸,看向-z軸 在變換時,把e平移到原點,g旋轉到-z,t旋轉到y,g*t旋轉到x      因爲正交矩陣的逆矩陣等於轉置矩陣,爲了求得原轉換矩陣,需要把逆矩陣轉置  

原创 路徑追蹤

Monte Carlo Integration :蒙特卡羅積分,近似求定積分的一種方法,取某個點xi,對應的y值做矩形,此矩形近似等於定積分面積,然後取多次求平均   求出概率密度函數pdf,就可以解出定積分,一般使用平均採樣,使得概率

原创 輻射度量學

圖形學中能量是一種簡稱,即單位時間內的能量,也就是功率 intensity:在一個單位立體角上的能量 立體角:在單位球上,一塊對着球心的面積除以半徑的平方,此時半徑爲1,立體角即爲面積,通俗說爲一個三角錐 微分立體角:看最終結果,說明立

原创 C++的頂層底層const

頂層const表示指針本身是個常量,底層const表示指針所指的對象是常量。其比較繞的地方是頂層const和底層const之間的拷貝(賦值)關係 1 void testConst2() { 2 3 int i = 0;

原创 折半、二路插入排序

折半插入排序:直接插入排序是將待插入元素與前面的元素一一比較,尋找合適的位置插入。而折半插入是通過折半來查找位置,所謂折半(可以參考二分查找)就是定義兩個變量分別指向頭start和尾end,取其中間值mid。如果待插入元素大於mid位置上的

原创 哈夫曼樹及其編碼

首先是哈夫曼樹的定義:在一棵二叉樹中,帶權路徑長度達到最小,成這樣的樹是最優二叉樹,也是哈弗曼樹。大概意思就是把數值大的節點放在樹上面,數值小的節點放在樹下面。哈夫曼樹的結構使用順序結構,這裏直接使用了數組。 建造哈弗曼樹的思路:根據二叉樹

原创 基數排序

基數排序的思想總體上就是把一組數中的所有數按照個十百位來改變在數組中的位置,分配十個桶(存放數的容器)對應0~9。比如在比較個位數時,把個位數爲0的所有數放在第一個桶內,個位數爲1的數放在第二個桶內,依次放入。在所有的數放完之後,此時數組內

原创 歸併排序

歸併排序大致上可以理解爲把所有數拆分到最小單位,在每個小單位時進行排序,依次把這個小單位變大,然後再排序。一直到所有數。   上圖中SR爲函數形參時傳入的數組,TR爲臨時數組。在本代碼中,num數組爲傳入數組,t爲臨時數組。left在最

原创 插入排序(希爾排序)

直接插入排序 將數組分爲有序區和無序區,開始時第一個元素就是有序區,與第二個元素比較,第一二元素排好序後,再將第三個元素與前2個元素比較插入到合適的位置。後面依次操作。 1 void insertSort(int num[],int l

原创 第一個小遊戲的開發過程,小球跑酷

記錄一下今天,自己的第一個小遊戲完成了,心情很舒爽。非常非常簡單的小遊戲,下面梳理一下過程。 首先創建跑道,使用cube,拉長等等。然後創建小球sphere,小球即爲玩家(player,積累單詞)。再添加障礙物,在分別爲其上色。 緊接着給小

原创 ssm搭建的圖書管理小demo(login、CURD)

學完ssm後就可以練手的小項目,圖書管理有login、CURD這四個功能。第一次寫完整的項目,儘量寫的很詳細,自己也從新梳理一遍 搭建環境:maven+eclipse+ssm+mysql 項目結構圖: pom.xml文件內容如下 1

原创 springmvc Demo

springmvc用於處理瀏覽器的視圖,其核心處理文件DispatcherServlet貫穿整個過程。當客戶在瀏覽器上發送請求時,DispatcherServlet截獲該處理,尋找對應的處理器映射器,該映射器再尋找對應的處理器,處理完成後返

原创 mybatis 基於配置文件的demo

項目工程如圖: 創建數據庫: 1 CREATE TABLE myuser( 2 id INT PRIMARY KEY, 3 username VARCHAR(20), 4 age INT,

原创 spring IOC demo

1、使用xml文件配置:   創建applicationContext.xml,在該文件中創建需要的bean, <bean id="hello" class="springdemo.HelloSpring"></bean> 此語句即可創

原创 spring aop demo

通過aop在目標邏輯代碼前後增加其他功能,先創建某個類用於某個功能。例如創建服務員,用來模擬服務功能。 1 package AOPdemo; 2 3 public class NaiveWaiter implements Wa