原创 OpenGL學習筆記:法線矩陣和鏡面光照

法線矩陣 爲什麼需要法線矩陣 之前我們計算的座標都是世界座標,但法線向量卻是局部空間的,應該把法線向量也轉換到世界空間纔對。但把法線向量轉換到世界空間,不能簡單的乘以模型矩陣,模型矩陣中可能會有位移、縮放、旋轉等變換。 首先,法線

原创 OpenGL學習筆記:數學基礎

本篇對OpenGL學習過程中遇到的關鍵的矩陣運算做一個總結,方便以後查閱。 文章目錄向量向量計算向量和標量的運算向量加減向量長度向量乘法點乘叉乘向量標準化矩陣矩陣的加減矩陣與標量相加減矩陣與矩陣相加減矩陣的數乘矩陣相乘矩陣與向量相

原创 Qt的操作堆棧

用Qt做操作堆棧主要用到這麼幾個類QUndoCommand、QUndoStack、QUndoGroup和QUndoView,下面詳細介紹 QUndoCommand 該類就是堆棧中的操作元,我們在用的時候需要創建該類的子類,重寫該類

原创 機器學習調包俠:6行代碼實現分類器

先做一個簡短的說明 同樣是一個學習筆記系列,只是記錄一些個人學習過程中覺得值得記錄一下的東西,不會做特別詳細的說明。另外,看系列名字就知道,本系列只介紹現有的框架的用法,不涉及具體算法,並不適合想深入學習的同學,如果你只是想用別人

原创 深入理解指針:一文讓你徹底理解指針

好多人都說指針很難,其實指針並不難,你不是不懂指針,你是不懂內存管理,搞懂內存管理,指針就是紙老虎 內存物理上的實現我們不用關心,這是硬件工程師需要關心的問題,作爲軟件工程師,我們只需要瞭解內存的抽象邏輯即可 在學習內存管理之前,

原创 機器學習調包俠:可視化決策樹

本篇對應教程 油管原版,B站搬運 測試數據 本節課要生成一個可視化的決策樹,不能再用上一節那個簡單的例子了,本節課我們使用機器學習領域中一個很經典的數據——鳶尾屬植物數據集(Iris flower data set),該數據集的相

原创 Qt的TCP通訊

基本使用 使用Qt的進行TCP通訊,主要用到兩個類,QTcpServer和QTcpSocket。前者主要用於服務端的監聽,相當於原始socket中由socket函數創建的監聽socket;後者主要用於讀寫數據,相當於原始socke

原创 使用匿名函數綁定重載信號槽

QObject::connect(ui.pushButton, static_cast<void(QPushButton::*)(bool b)>(&QPushButton::clicked), [=](bool b) { t

原创 Jekyll + Github Pages + CSDN遷移腳本 = 自己的雲筆記

折騰了幾天,將sbdn上的文章轉移到gayhub pages上,做個簡要筆記,以後sbdn上不再更新,轉移到gayhub pages,新地址戳這裏,廢話不多說,直接開始 gayhub部分 創建gayhub帳號,然後新建一個名爲用

原创 正確解決VS編譯Qt遇到無法運行rc.exe問題

今天用vs新建一個qt工程,編譯的時候發現無法運行“rc.exe”,習慣性的上網找解決辦法,找到的都是把rc.exe複製來複制去的,這是繞開問題,不是解決問題。而且我之前的qt工程不用複製rc.exe也能正常編譯,只有新建的不行,

原创 Qt的拖放功能

對於源控件,需要重寫鼠標按下事件和鼠標移動事件 class TweenMouldListWidget : public QListWidget { Q_OBJECT public: TweenMouldListWidget(

原创 Qt槽函數的重入問題

在Qt的信號槽機制中,如果一個槽函數的執行時間很長,在槽函數還沒有執行結束的時候,有新的信號產生,默認情況下,該次信號不會被丟棄,而是會等槽函數執行結束後再次調用槽函數 但是在某些情況下,如果想將槽函數執行過程中所產生的新信號丟棄

原创 Qt的延時函數

阻塞延時 使用QThread類的msleep、sleep、usleep函數 優點: 使用簡單,都是靜態函數,引入頭文件後可以直接調用 精確度高,可以精確到微秒 缺點 這幾個函數的作用是強制當前線程休眠,非ui線程倒是無所謂,

原创 康威生命遊戲

簡介看這裏 爲保證通用性,邏輯層使用C語言的標準庫去做 #ifndef __H__CELLULAR_AUTOMATA__ #define __H__CELLULAR_AUTOMATA__ #ifdef __cplusplus ex

原创 深入指針本質:一文讓你徹底搞懂指針

好多人都說指針很難,其實指針並不難,你不是不懂指針,你是不懂內存管理,搞懂內存管理,指針就是紙老虎 內存物理上的實現我們不用關心,這是硬件工程師需要關心的問題,作爲軟件工程師,我們只需要瞭解內存的抽象邏輯即可 在學習內存管理之前,