2018年4月24日 星期二

Visual Studio 2017 上傳到 github 中文是亂碼

Visual Studio 2017 上傳到 github 中文是亂碼

主要的問題是 Visual Studio 2017 使用 Big5 儲存而 Git 使用 UTF-8,只要把她修正儲存的時候存成 UTF-8 即可。
Visual Studio 2017 內建有功能可以直接Big5 轉 UTF-8,只是預設清單上沒有這個功能選項被隱藏了需要手動開出來,功能名字是進階儲存選項
工具->自訂
命令 -> 加入新命令 -> 檔案 -> 進階儲存選項
這樣就可以在檔案內看到了
選擇檔案之後選中這個即可
之後重新提交上傳到 Github

2018年4月22日 星期日

PowerShell 第一次使用需開啟功能

PowerShell 第一次使用需開啟功能

第一次使用需要開啟功能,使用 Win+X,然後按一下a
開啟 PowerShell 視窗,然後輸入
Set-ExecutionPolicy RemoteSigned
然後 輸入 Y 按下 enter 開啟 PowerShell 的功能

2018年4月20日 星期五

makefile 通配符,獲取目錄下的所有檔案名稱

makefile 通配符,獲取目錄下的所有檔案名稱

通配符

有3個可以使用的指定通配符
## wildcard 
# 獲取指定副檔名名稱
SRC=$(wildcard *.cpp)
# 如果要獲得子目錄就在前面加上
SRC=$(wildcard ./dir/*.cpp)
# 如果有多個子目錄
SRC=$(wildcard ./dir1/*.cpp ./dir2/*.cpp)

## notdir
# 去除目錄名稱僅保留檔案名稱
Src2=$(notdir $(SRC))

## patsubst
# 更改 *.cpp 名稱為 *.o
OBJ:=$(patsubst %.cpp,%.o,$(Src2))

參考

2018年4月16日 星期一

泊松混合與拉普拉斯金字塔混合,縫合圖片實作差異

泊松混合與拉普拉斯金字塔混合,縫合圖片實作差異

時間

拉普拉斯:120ms
泊松:428ms

原圖縫合效果

原圖比較
拉普拉斯金字塔
泊松混合

調整亮度後縫合效果

原圖比較
拉普拉斯金字塔混和
泊松混合

2018年4月11日 星期三

PowerShell 批次處理 刪除google雲端硬碟副本下載後產生的副檔名

PowerShell 批次處理 刪除google雲端硬碟副本下載後產生的副檔名

雲端硬碟如果使用建立副本的方式下載就會產生的副本字樣,比如說
原始檔案為
ABC.jpg
產生副本之後
ABC.jpg.jpg 的副本
下載到windwos之後就不能看到預覽圖了也沒辦法直接播放,需要刪除多餘的副檔名

如何刪除副檔名

批次檔案:下載
沒有加殼,可自行查閱代碼,確認安全

使用方法

下載放到你要的資料夾,然後按右鍵用poweshell執行,即可。
資料夾可以不用同一層,預設會自動搜尋3層內的。
第一次使用需要開啟功能,使用 Win+X,然後按一下a
開啟powershell視窗,然後輸入
Set-ExecutionPolicy RemoteSigned
然後 輸入 Y 按下 enter 開啟powershell的功能

2018年4月9日 星期一

為什麼 function 可以 deref 好幾次結果仍相等

為什麼 function 可以 deref 好幾次結果仍相等

簡單解釋來說是存在著隱式轉換把 point 轉換到 function,這樣不管你解參考幾次都會自己轉回來,而參考只能參考一次。

參考

[6.3.2.1-4]
4 Afunction designator is an expression that has function type. Except when it is the operand of the sizeof operator, the _Alignof operator,65) or the unary & operator, a function designator with type ‘‘function returning type’’ is converted to an expression that has type ‘‘pointer to function returning type’’.
[6.5.3.2-1]
The operand of the unary & operator shall be either a function designator, the result of a [] or unary * operator, or an lvalue that designates an object that is not a bit-field and is not declared with the register storage-class specifier.
[6.5.3.2-4]
The unary * operator denotes indirection. If the operand points to a function, the result is a function designator; if it points to an object, the result is an lvalue designating the object.
If the operand has type ‘‘pointer to type’’, the result has type ‘‘type’’. If an invalid value has been assigned to the pointer, the behavior of the unary * operator is undefined.102) Forward references: storage-class specifiers (6.7.1), structure and union specifiers (6.7.2.1).

2018年4月8日 星期日

自排車正確打檔方法

自排車打檔注意事項:

前方按鈕使用時機,這個按鈕主要是要防止意外打錯檔,平常應該養成習慣,大原則就是可以不用按的就不應該按,比如說從 D->N 如果習慣要按就有可能不小心多推一格跑到 R。
如果養成正確的習慣,不要按那麼這時時候就會卡住在N,平時行車只會用到 N 與 D 這兩個檔都不用按,就是直接上推與直接拉,不會有任何打錯檔危險。

需要用到的時候(箭頭是方向,有些是雙向)

  1. 從 P <-> 任意檔
  2. 從 N -> R (反過來不需要)

不需要按的時候

  1. 從 N <-> D
  2. 從 R -> N

停紅燈的時候

自排車因為只要打 D 或 R 檔車子就會以很緩慢的速度行駛(大概一般走路速度),所以得踩著煞車
  • 可以選擇踩住煞車
  • 直接推到N檔(不按按鈕)
綠燈之後直接推到 D 檔再踩油門即可,避免先踩油門再拉D檔,這樣離合器磨損會比較大,不小心踩到一點不會怎麼~不要刻意拉轉就好。
一般的車子變速箱並沒有設計成可以彈射起步,就是N檔踩油門轉速拉高之後直接推到D檔,這樣啟動會彈射出去,多玩幾次變速箱會損毀

停車時該如何打檔

如果是在平地停車怎麼打不太會有影響,但是如果在斜坡稍微有一點就算,打錯檔會損壞變數箱
變數箱的P檔指的是停車檔的意思,它具有煞車的功用,但是並不是很強,他是在變數箱內有一個東西卡著齒輪。
如果你在斜坡上直接打P檔,就會導致所有的力量都吃在這個齒輪上,這個齒輪並不是設計來長時間抵擋煞車的,而是設計來防止有人推到車子擋一下子的功用,錯誤的使用會導致齒輪損壞(變數箱維修很費工價錢不便宜)
除此之外還會有一個問題就是,那一跟卡住齒輪的物件,在斜坡上會因為正在施力導致拔出來,也就是你的 P檔 會沒辦法打到 N檔,當然硬打是可以的拔出來的,每一次都是傷害多打幾次可能就會需要進廠拆變數箱了。
正確的停車方法是不熄火,熄火沒有電力輔助會導致煞車沒力你有可能採緊煞車還會滑動,
  1. 踩住煞車然後拉手煞車,放開煞車這時候確保手煞車停住了
  2. 打入P檔熄火下車
這裡的重點是手煞車要比 P 檔先煞車,這樣才不會吃到 P 檔的齒輪
然後還沒結束,上車的時候操作也要對否則就前功盡棄了
  1. 上車後先發動車子(避免沒煞車)
  2. 踩住煞車
  3. 離開 P 檔 (看你要前進還是後退打R或D都可以)
  4. 放開手煞車
這裡的重點是 P 檔要比手機煞車先放開,不然你手煞車先放就直接卡住 P 檔的齒輪了前面就白做了

打檔桿子左邊的小按鈕用途與使用方法

這個是加速紐,按了可以在儀表看到 sport 轉速會高很多,一般是設計來用在超車用的,流程大概是這樣的。
如果你已經準備好要超車子,還在他屁股後面停一車道就可以先按了,直接按不用煞車或幹嘛,這時候會看到儀表板亮燈還有車子引擎變大聲音,
這時候就已經準備好了直接抄車了,超車之後回到原車道再按一次即可恢復,一樣直接按就好不需要任何搭配的操作。