原创 libuv筆記(一)libuv中連接主機出現的10061問題

      出現10061主機拒絕問題是由於我在接受連接以後沒有繼續accept且超過backlog數,libuv中一個uv_tcp_socket可以接受32個連接,其餘的連接會以失敗結束。         現在解析下源碼,觀察爲什麼會出

原创 cocos2d----Value

        Value類被稱爲“包裝類”,它可以將int、float、double、bool、unsigned char和char*等基本數據類型包裝成爲類,也包裝一些C++標準類,如std::string、std::vector<V

原创 cocos2d----AutoreleasePool和PoolManager

在cocos2d中Ref是大部分的基類,它實現類的自動管理,一定程度上避免了內存泄漏的問題。 AutoreleasePool管理Ref,其內使用vector容器管理Ref,PoolManager管理AutoreleasePool,其內也是

原创 cocos2d----Node(1)

node類的管理是一種結點樹的方式去實現,按照CCNode.h中的說明,Node類有如下特徵: node結點可以包含其它結點 可以定時的調用回調函數 可以執行動作(action) node的屬性有: position:x=0,y

原创 cocos2d----Ref類

cocos2d-3.x中Ref類替代了Object類,Ref類的作用就是引用計數,引用計數是實現自動內存管理的一種方法。 以下是Ref類的聲明: #ifndef __BASE_CCREF_H__ #define __BASE_CCREF

原创 視變換

1.視變換目的 視變換就是爲了將世界座標系轉換爲眼座標系(視角決定座標) 如圖所示: 我們的眼睛座標爲VRP,眼睛看向VPN方向,頭的頂部朝向VUP方向,指定了這三個參數我們就可以知道物體在眼座標系中的位置。 2.視變換矩陣的推導  我

原创 一點透視,二點透視,三點透視的理解

在繪畫的過程中可能最讓同學們感到頭疼的就是透視了,什麼1點透視,2點透視,三點透視,聽起來就讓人感覺到恐怖。頓時就失去了信心。特別是那些空間感覺比較差的女生就更加的費力了。其實透視幾乎是無處不在的,很多人以爲透視就是建築景觀。人物方面就

原创 透視投影

背景 在這一節中我們將會介紹如何在保持深度外觀的情況下將三維世界中的物體投影到二維平面上去。最有代表性的例子是:當我們站在一條筆直的馬路的中間向前看時,我們會發現馬路的兩邊會越來越靠近,並最終匯聚成一個點。這就是圖形學中常說的透視投影。

原创 光柵圖形學算法--消隱算法

主要講述的內容: 消隱的分類,如何消除隱藏線、隱藏面,主要介紹以下幾個算法: * Z緩衝區(Z-Buffer)算法 * 掃描線Z-buffer算法 * 區域子分割算法 消隱   當我們觀察空間任何一個不透明的物體時,只能看到該物體朝向我們

原创 三維旋轉矩陣

            繞x軸旋轉                                                繞y軸旋轉                                      繞z軸旋轉 繞任

原创 圓的生成算法

與Bresenham直線生成算法一樣,若點S離實際點更近,則取S點,否則取T點, 但點離x軸越近則越稀疏,因此我們先畫第一象限的上八分之一個圓,最後根據對稱畫出一個圓。 將圓心平移到原點,設x=0,y=R 則爲(1,R),爲(1,R-1

原创 座標系變換

座標系的變換與圖形變換相似,分爲平移、旋轉。 我們的目的是求出原圖形在新座標系的中的座標 1.座標系的平移 若座標系在x軸平移dx,在y軸平移dy,在z軸平移dz,則圖形在x軸平移-dx,在y軸平移-dy,在z軸平移-dz 用矩陣表示爲

原创 掃描線種子填充

  掃描線種子填充算法的基本過程如下:當給定種子點(x, y)時,首先分別向左和向右兩個方向填充種子點所在掃描線上的位於給定區域的一個區段,同時記下這個區段的範圍[xLeft, xRight],然後確定與這一區段相連通的上、下兩條掃描線上

原创 種子填充算法--四鄰域,八鄰域

種子填充算法最好使用非遞歸的方式,若使用遞歸方式,非常消耗棧內存容易溢出。 1.遞歸算法 void Polygon::fill(int x,int y,COLORREF color) { COLORREF currentColo