兩向量的夾角角度

「真不該把數學還給老師的!」
這句話自大學以來已經悔恨不知多少次了…
雖然是高中生的一個簡單的題目,終究還是還給老師,還是筆記下來比較實在XDD

原理:

  • 向量內積 (dot product)
    A dot B = |A| |B| cos(θ)

過程:


結論:

  • θ = Acos( (A dot B) / (|A| |B|) )


範例:

 // C# with XNA
 Vector3 A = new Vector3(1, 2, 3);
 Vector3 B = new Vector3(4, 5, 6);
 float A_dot_B = Vector3.Dot(A, B);
 float ALen_mul_BLen = A.Length() * B.Length();

 // 基本上A & B皆不應該為零,就略過檢查分母為零的狀況
 double theta = Math.Acos(A_dot_B / ALen_mul_BLen);

 // 這裡計算出來的theta是弧度(單位為π),可依照需求轉成度數
 // double degree = theta * 180 / 3.14;
 double degree = MathHelper.ToDegrees((float)theta);

範例2:

 // C# with XNA,將向量化的動作提前,結果是一樣的…吧~
 Vector3 A = new Vector3(1, 2, 3);
 Vector3 B = new Vector3(4, 5, 6);
 A.Normalize();
 B.Normalize();
 
double theta = Math.Acos(Vector3.Dot(A, B));

獻給已經將數學還給老師的同志們XDD

–End

BAT – ren

嗯…
今天無意間看到的一個語法,簡單卻又實用的東西。
「ren」應該就是Rename的意思…

更改附檔名:

 ren *.jpg *.png


這行指令就會把資料夾底下所有副檔名為jpg的檔案改成png。
嘛~有時候會很有用吧XDD
進階用法就…有空再聯絡啦~



Batch files

似乎是教學還甚麼的網站~
有時間再研究研究~

–End

SyntaxHighlighter

SyntaxHighlighter 是一個用來處理程式碼放到網頁上的 JS 程式
其實,我肖想這種東西很久,但一直都沒去找
應該發現到我把網誌的版面換了吧~
雖然我很喜歡原來的 iTunes 風格,但似乎有不被接受的語法而無法繼續使用…
加上如果要使用該套件,需要加入一些東西
最後才想起來前陣子無名才封鎖 JS 的所有語法 |||Orz
iTunes 就一去不回了…

目前只找到在 Google 的 Blogger 上使用的方式。
在 Google Blogger 中使用 SyntaxHighlighter
Syntax Highlighting Code in Webpages

嗯~
上面兩篇都提到的 GooglePage 已經停止開放註冊了…
另外的 Geocities 我沒試過,但應該可以用~
我是找網路公司附送的空間放的。
如果找不到地方用,可以直接用別人的也行,只不過安全上就要注意囉

依照上面的教學置入CSS的設定後,在網頁裡可以使用兩種方式呈現:

1.

 <pre name="code" class="java">
     // 你的 Code
 </pre>

注意,使用 <pre> 時,「>」很有可能會被 HTML 替換成「&lt」。
這不會造成整個頁面的出錯,只是版面看起來會變怪就是~

2.

<textarea class="C#" name="code" rows="50" cols="70">
    // 你的 Code
</textarea>

這個方式目前我沒有成功使用,不曉得哪邊出問題…
別人網頁倒是很正常說

SyntaxHighlighter 測試


之後有程式碼的文章,應該都會在 blogger 那邊放一個對應的文章。
這樣應該就可以省去不少時間改 code 顏色了吧

–End

Loves to code

經過高中國中兩次同學會
赫然發現有不少人多多少少摸過程式,挺感動的XD
但…因為「愛」,而 code 的有多少呢?

今早,學弟貼了兩篇文章給我:
前進遊戲界:給大學生的行前準備建議

「我想進入遊戲業!但是不知道要如何做準備!」

你是學生嗎?你渴望在畢業之後進入遊戲業界工作嗎?你抱持著滿腔的熱情,卻不知道如何替未來的自己做好準備嗎?這篇文章裡,將以我個人的經驗與心得,提供給有興趣進入遊戲業界的學生一些行前準備建議。因為我自己是屬於遊戲程式設計者的身份,所以這篇文章多數的內容是針對未來有志於成為遊戲程式設計師的大學生。在文章最後,則會稍微提到一些關於遊戲企畫設計者遊戲美術設計者的面試加分項目。


難得又有業界人士跳出來說心得,還在猶豫的人應該好好拜讀一番。
裡面提到的兩條路:

  • 大學畢業,當兵,進入業界。
  • 大學畢業,念研究所,碩士畢業,當兵,進入業界。

我目前的方向和第一條較相符
想想,同學會中不少為了考研究所而補習
究竟是真的有想學的?還是只為的學歷而拼?
文章裡提到的另一篇有趣的文章「明星程式設計師必備的十項特質」,也很值得程式的同好看看!

談談電腦遊戲設計師的養成

阿,我年輕的朋友們,你們想成為遊戲設計師,所以來問我有何好建議?
我會給你們我最好的建議,但我猜想你們可能會聽不進去。
你們可能更願意聽那些說你們愛聽的話的人所提供的建議。
但這對我來說無所謂,我所能做的就是說些實事,並希望能進入某些人的耳朵裏。


這篇在前些時候就看過了

–End

畫面更新控管

嗯~
我想很多人在剛學視窗程式的時候,很直覺的迴圈就大概是…

 // 系統回圈
     // 邏輯更新
     // 畫面更新
 // 回圈結束


當發現CPU被吃滿(極大多數的範例都是如此)
就會直覺得這樣做…

 // 系統回圈
      // 停頓1~10ms
      // 邏輯更新
      // 畫面更新
 // 迴圈結束

尤其是沒做什麼事情的程式,會從100%降至個位數
接著會發現,畫面更新過於頻繁,停太久又會影響到邏輯部份,就會這樣做…

 // 系統回圈
      // 邏輯更新
      // 計算距離上一次更新的時間差
      // 如果大於設定的時間差
           // 更新畫面
 // 迴圈結束


很多人做到這邊就大概滿足了,fps基本上是穩定的
但程式做大了,有些電腦開始跟不上更新速度
這種時候不是畫面噸而已,邏輯也會跟著影響到…

如果你也有一樣的困擾,那就看看這篇文章吧!有圖有真相(?)
下載連結
這是在程式設計俱樂部看到的O_O+
保證看了就通

多執行緒應該也是要控管才能順的吧~