原创 Github與Git使用

1、註冊Github 註冊完成之後會需要驗證郵箱才能正常使用GitHub。 註冊完成後,創建一個屬於自己的庫,包括庫的名字,以及對庫的介紹。   2、安裝Git 首先進入Git官網www.git-scm.com下載適合自己電腦的版本,執行

原创 BIMServer系列——1.BIMServer安裝

1、下載安裝JRE 本機位win10 64位,應選擇64位JRE下載。最新版本文件如下:jre-8u221-windows-x64.exe。   2、下載安裝BIMServer及插件 BIMServer安裝包、插件及測試數據已有Githu

原创 500行C++代碼實現軟件渲染器 - 0.引言

直接閱讀源代碼並不容易理解,建議閱讀維基之後再來實現你自己的渲染器。只有當你弄懂了所有的技術細節之後,你纔會知道渲染器如何工作。我很樂意通過郵件得到讀者的反饋。如果你有任何問題,歡迎與我聯繫(dmitry.sokolov@univ-lor

原创 500行C++代碼實現軟件渲染器 - 2.三角形光柵化與背面剔除

填充三角形 大家好,這是我。 更精確來講,這是用接下來一兩個小時內我們將創建的程序渲染出來的我的臉的模型。上一次,我們繪製了三維模型的線框。這一次,我們將填充多邊形,或者三角形。事實上,OpenGL幾乎會對所有的多邊形進行三角化,所以這

原创 500行C++代碼實現軟件渲染器 - 1.Bresenham直線繪製算法

第一版 這一課的目標是繪製線框。爲了實現這個目標,我們需要先學會繪製線段。我們可以直接閱讀Bresenham直線算法的內容,但是我們還是自己寫代碼實現。要實現點(x0,y0)和(x1,y1)之間線段的繪製,代碼應該怎麼寫呢?顯然,代碼可能

原创 500行C++代碼實現軟件渲染器 - 3.隱藏面消隱(Z緩衝區)

引入 您好,我來介紹一下我的朋友z緩衝區,一個黑色的夥計。 他將幫助我們避免上一課中隱藏面移除的視覺效果。 順便說一句,我想提一下,我在課程中大量使用的這個模型是由Vidar Rapp創建的。 他授予了我使用許可,以便我可以教授關於渲染

原创 premake5實例教程

premakeExample 1 簡介 本文講解如何基於premake5創建一個典型的C++解決方案,該解決方案包含三個項目: 一個依賴GLFW動態庫的動態庫項目ExampleDll 一個依賴ExampleDll動態庫的窗口程序

原创 利用OpenThreads實現三個線程順序打印ABC

#include <iostream> #include <OpenThreads/Thread> #include <OpenThreads/ScopedLock> OpenThreads::Mutex g_mutex; int g

原创 500行代碼實現軟件渲染器 - 3.隱藏面消隱(Z緩衝區)

引入 您好,我來介紹一下我的朋友z緩衝區,一個黑色的夥計。 他將幫助我們避免上一課中隱藏面移除的視覺效果。 順便說一句,我想提一下,我在課程中大量使用的這個模型是由Vidar Rapp創建的。 他授予了我使用許可,以便我可以教授關於渲染

原创 500行代碼實現軟件渲染器 - 2.三角形光柵化與背面剔除

填充三角形 大家好,這是我。 更精確來講,這是用接下來一兩個小時內我們將創建的程序渲染出來的我的臉的模型。上一次,我們繪製了三維模型的線框。這一次,我們將填充多邊形,或者三角形。事實上,OpenGL幾乎會對所有的多邊形進行三角化,所以這

原创 500行代碼實現軟件渲染器 - 1.Bresenham直線繪製算法

第一版 這一課的目標是繪製線框。爲了實現這個目標,我們需要先學會繪製線段。我們可以直接閱讀Bresenham直線算法的內容,但是我們還是自己寫代碼實現。要實現點(x0,y0)和(x1,y1)之間線段的繪製,代碼應該怎麼寫呢?顯然,代碼可能

原创 500行代碼實現軟件渲染器 - 0.引言

直接閱讀源代碼並不容易理解,建議閱讀維基之後再來實現你自己的渲染器。只有當你弄懂了所有的技術細節之後,你纔會知道渲染器如何工作。我很樂意通過郵件得到讀者的反饋。如果你有任何問題,歡迎與我聯繫(dmitry.sokolov@univ-lor

原创 三種開源庫實現GIS座標轉換

1 Proj.4 通過座標系proj4字符串創建projPJ類型座標系,調用pj_transform函數實現。 其中座標系proj4字符串可在PROJ4-data文件夾中的epsg文件中搜索得到。 double x = dblSrcX;

原创 組合使用Memento模式與Command模式實現多級Redo和Undo

總體思路 利用Memento模式,爲每一個執行命令之前的對象的狀態創建備份。 利用Command模式,將命令的調用和操作的實現解耦。 通過維護一個命令和備份相對應的數組,將命令和當前對象的備份同步保存起來。 設置一個當前數組的遊標,標識當

原创 設計模式七大原則總結

1.單一職責原則(Single Responsibility Principle) 目的:降低代碼複雜度、系統解耦合、提高可讀性 含義:對於一個類,只有一個引起該類變化的原因;該類的職責是唯一的,且這個職責是唯一引起其他類變化的原因。 解