最近公司請了老師來教3D的部份,把上課的成果拿來貼一下 ^__^
這跟第一個sample 有什麼不同呢?其實這是屬於pick的部份,也就是在3D的環境中,被滑鼠點到的部份,就會產生反應。
這個就更有趣了,中間倒過來的小孩照片,其實個圓柱體上面貼個小孩的圖片,但是會上下轉動的,這種聽說通常做在河水上,然後再投影到黑色的材質上。
以上就是最近的作業了,以後還有新的作業還會貼上的。
我寫程式,所以我存在
在颱風天的早上本來想要開車出門的,沒想到點不起火。到了這禮拜六才有空來去車廠修。
本來都是到台北的生哥那邊去修,可是這次火點不起來,叫拖車,拖到台北也要一、二千元,
所以就想到附近的車場去修,問了以前修車的老闆(目前已經歇業),介紹了附近的車廠,
就來到「富業」的車廠。
由於一開始火點不起來,所以就請修車廠的師傅來推車,後來發現是啟動馬達壞掉。
最後還發現冷氣的壓縮機也是有問題,但是這個月的預算超過,還是下個月再修吧....
以下是這次修車的價錢:
啟動馬達 3300
火星塞 1000
機油兩瓶 500
加油 790
----------------------------------------------------------
總計 5590
之後還要冷氣的壓縮機要修....
最近在寫自已的程式,聽說 STLport 不錯用,就拿來編譯了一下,沒想到沒有支持vs2008,
於是就參考網路上的文章,如何順利編譯成功,
(1) 首先執行 C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
我在執行這個bat的時候,還是不能編譯,於是發揮我努力的精神發現,是執行C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat,於是我就COPY到 \STLport-5.1.5\build\lib\ 目錄下,再執行
(2)然後在 \STLport-5.1.5\build\lib\ 進入 cmd 視窗,輸入 configure -c msvc8
(3)如果要編譯成lib 輸入 nmake /fmsvc.mak install
(4)以上如果沒有意外的話 應該會順便成功編譯,不過當然沒有這麼順利,編譯後會出現一堆 dll 的錯誤
此時,就要到 \STLport-5.1.5\stlport\st\config\user_config.h增加一行
#define _STLP_STATIC_CONST_INIT_BUG 1
(5)最後再重複上面的指令,應該就可以編譯成功了
以上,感謝 估狗大神,和網路上分享大大的經驗
參考以下網站:
http://kimiya25.spaces.live.com/blog/cns!27A083D4FD9435E9!920.entry
http://blog.narahome.com/archive/200806
最近把之前工作的 DirectX 程式拿來重做了一下,把一些元件分離,設定一下 CallBack Function ,讓每個程式可以設定不同的Device設定,不需要每當做新的程式時,就更改原本的設定。
另外加入了 OIS 這個OpenSource,可以控管 鍵盤/滑鼠/搖桿 ,OGRE 也有使用,編譯也很簡單。使用上看範例也很容易。
另外還想加入 OPENAL (聲音的OpenSource) 、CEGUI(介面的OpenSource)。
不過OPENAL 好像沒有mp3的支援(不太確定,
CEGUI編譯不太容易,雖然比起OGRE簡單多了,可是目前OGRE還沒有建起來過。
原本的程式已經可以繪製2D了 ,只是鏡頭跟世界沒辦法旋轉,所以製作了這個 Sample 01 ,有看過DirectX9的Tutorials的一定很面熟,我就是拿了Matrices的程式來套用。
另外,右邊的東西是什麼呢?其實就是 Console Log, 也就是記載 log 訊息的視窗,與主視窗 共生。可以及時顯示訊息,蠻方便的使用。
繼續來研究 DirectX9 的 Tutorials ,建製自已的3d引擎 ^_^
換新工作已經一個月了,從當初想要到科技業然後又被吸引回遊戲業,這之間的風風雨雨實在不少。
到目前的公司,工作上有韓國人要合作,要用英語溝通,讓我更深深的感受到自已英語能力的不足,從面試到目前工作,讓人覺得英語真的是很重要的工具,不管是文件、溝通,都要透過英語。
目前的環境還不錯,但是更希望能夠有自已的未來,希望在目前工作上能夠繼續的努力,學習再學習。
在面試的時候,遇見一個主管 問說 會不會 "Design Pattern" ,當場就被問倒了!!
那主管說,如果要繼續走程式的路,可能就要學習 "Design Pattern"。
因此相關的資料都會在此留存 讓以後參考用!!
http://www.codeguru.com/forum/showthread.php?t=327982
http://www.javaworld.com.tw/confluence/display/designpattern/Home
面試真的對我而言,真的是一種很累的活動,因為我對台北的不熟悉,住的地方「軟體工程師」之類的工作實在也算是幾乎沒有。不過面試有個好處,是了解現在業界在做什麼東西,所需的人才是什麼,另外也讓我小小的瘦了幾公斤。雖然可以之後沒面試會胖回來...
這次面試的經驗,讓我覺得英文真的是個蠻重要的東西,蠻多比較正規的公司都會考英文,然後我的英文真的很爛,讓我喪失了不少工作的機會。
另外,程式語言,我一直覺得自已學的還可以,雖然學校學的比較淺。後來到公司考程式 C/C++ 的時候,出來的分數真的打磨掉我的信心,可能因為只是資訊管理出身,也可能是上課不用心,一些比較細部的東西,在我的粗心之下,真的分數就很低了。
面試期間,真的有印象好的公司,也有印象差的公司,雖然我考出來的程式分數可能有點低,但是我覺得我有相關的工作經驗,應該可以讓跟主管聊聊天,聊聊一些業界的訊息,對程式的作法。結果遇到一間公司,只有看到櫃台小姐,拿程式考卷給我,考完就跟說我不及格,謝謝再連絡了,實在是對這家公司印象不太好。
當然在印象好的公司面試,雖然我的成績不太好,但是面試主管還出了一題,讓我再試一遍,而我解出來的,主管還是願意錄用我,雖然之後沒有去那間公司,但我覺得對那家公司印象就很好。那間公司還是個上市公司,雖然拒絕了,但是心理還是很感恩的。
面試連續一個禮拜之後,真的打磨掉我的信心,但是也讓我知道自已所缺少的,未來必要了解的東西。
在此,謝謝給我面試機會的公司跟主管。^____^
就是會在同一個目錄內檔案增加幾行的文字,程式碼如下:
' 日期:20080308
' 作者:Kwedr
' 作用:在檔案後增加資料'
' 開啟瀏覽資料夾畫面,選擇資料夾
dim oShell
dim oFolder
dim oFolderItem
set oShell = CreateObject("Shell.Application")
set oFolder = oShell.BrowseForFolder(0, "選擇你要更改檔名的資料夾", 0)
set oFolderItem = oFolder.Items.Item
dim fileItem
dim name
Const ForAppend = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
For each fileItem in oFolder.Items
name = oFolderItem.Path & "\" & fileItem.name
Set opFile = objFSO.OpenTextFile( name , ForAppend)
opFile.WriteLine("")
opFile.Close
Next
Wscript.echo "完成"
最近都在用PDA看小說,可是下載下來的檔案都很大,如果一次開啟,就會造成一整個LAG。
然後就在網路上找切割程式,但是好像沒有找到文字檔的切割,就隨便找一個切割軟體來使用。
但是,如果檔名為"xxx.txt",切割後就會變成"xxx.txt.001",於是我就寫了一個程式,把後面的001 跟 txt 互換的程式。
原始碼如下:
' 日期:20080308
' 作者:Kwedr
' 作用:更改檔名
'
'開啟瀏覽資料夾畫面,選擇資料夾
dim oShell
dim oFolder
dim oFolderItem
set oShell = CreateObject("Shell.Application")
set oFolder = oShell.BrowseForFolder(0, "選擇你要更改檔名的資料夾", 0)
set oFolderItem = oFolder.Items.Item
dim fileItem
dim tmp,pos,name,ext,no,strlen
dim oldname,newname
Set objFSO = CreateObject("Scripting.FileSystemObject")
For each fileItem in oFolder.Items
strlen=Len(fileItem.name)
oldname = oFolderItem.Path & "\" & fileItem.name
'Wscript.echo "oldname:"&oldname
if pos <= 0 then
Wscript.echo "oldname:"&oldname
end if
pos = InStr(fileItem.name,".")
name = Left(fileItem.name,pos-1)
'Wscript.echo "name:"&name
tmp = Right(fileItem.name,strlen-pos)
pos = InStr(tmp,".")
'Wscript.echo "tmp:"&tmp
strlen=Len(tmp)
ext = Left(tmp,pos-1)
'Wscript.echo "ext:"&ext
tmp = Right(tmp,strlen-pos)
no = String(3-Len(tmp),"0")+tmp
'Wscript.echo "no:"&no
newname = oFolderItem.Path & "\" & name&"_"+no&"."&ext
'Wscript.echo "newname:"&newname
objFSO.MoveFile oldname, newname
Next
Wscript.echo "完成"
版本:0.3
更新日期:20080217
輸入要開始抓取的啟始網址,可輸入多行網址與使用{}方式。
在啟始網頁與接下來的網頁中,使用連結來判斷下一頁的網址,可輸入多行與使用{}方式與*方式。
只需要輸入部份關鍵字串,即可使用。
如果空白則所有連結都會抓取。
當選取了不換頁,就不會抓取下一頁的連結。即次頁關鍵失效。
「建立資料夾」,使用次頁關鍵的第一筆網址,來當資料夾的名稱,常用來抓取討論區時,以每篇標題來分類,抓取的圖檔就會分在不同的資料夾中。如果需要抓取簡體論壇,就需要勾選「目錄簡轉繁」。
網頁中的圖片連結判斷是否需要下載,可輸入多行與使用{}方式與*方式。
只需要輸入部份關鍵字串,即可使用。
如果空白則所有圖檔都會抓取。
圖檔長寬用來判斷圖檔長寬,大於等於設定值即下載。
目前支援 bmp、jpg、png、gif、psd,等5種。
不使用Cookie
當抓取Yahoo漫畫時,如果開啟,下載會失敗。
<0.3之前版本因為預設使用,所以會下載失敗。>
Cookie
使用儲存在電腦中的Cookie資料,在登入網站或論壇時,通常會讓使用者選取Cookie的記錄時間,一般而言非「瀏覽器關閉」即失效的Cookie,就會存在電腦中。
Session Cookie
抓取IE瀏覽器的Cookie資料,使用時,請先用IE瀏覽器開啟要抓取的網址,並在抓取期間不能關閉。
文字模式
抓取網頁的HTML原始碼,判別連結和圖檔的網址,無法判別JavaScript產生的網址,速度較快,下載網頁內容同時判別網址。
網頁模式
使用IE瀏覽器開啟網址,抓取其中的網址連結和圖檔的連結,可視即可抓。速度較慢,因為要等網頁載入完畢。
目前只支援使用連結方式換頁,暫不支援使用按鈕等其他方式。<程式中IE7 不支援 iFrame ,IE6可以 >
單網頁模式
由於在使用IE7時,同時開啟太多網址,會產生失敗訊息,使用單一網頁,可以減少失敗。
Host:Proxy網址 : ProxyPort
使用Proxy:勾選時使用Proxy
只在下載檔案使用:勾選後,文字模式下載網頁時不使用Proxy,下載檔案使用Proxy
以上 只適用於文字搜尋模式與下載檔案,網頁模式請自已設定IE瀏覽器。
文字模式或下載檔案時超過逾時設定即會中斷下載,網頁模式會加長逾時設定。
只在文字模式時使用,方便取得網頁內容。
{}模式
可使用{001-002} {a-z}{A-Z}
範例:
http://www.myweb.com.tw/{01-02}-{a-z}.html
會產生如下網址:http://www.myweb.com.tw/01-a.html
http://www.myweb.com.tw/02-b.html
說明:
產生的網址數,由第一個{}產生的個數決定。
數字型態,可由數字的個數決定是否要填「0」
*模式
次頁關鍵與下載關鍵使用,當輸入如下
以下網址都可成功
[Config]
SavePath 儲存目錄
Proxy Proxy網址
TimeOut 逾時(毫秒)
SaveHtml 是否儲存網頁(文字模式)
SaveHtmlPath 儲存網頁目錄
UseProxy 是否使用Proxy
UseProxyOnlyFile 是否只在下載使用Proxy
[UrlKeyWord] 判別網址HTML語法
Num 判別網址語法數量[UrlKeyWord/KeyWord01] 判別網址HTML語法第一筆
Num 關鍵字數量
Word01 第一關鍵字說明: 在HTML一般的網址連結方式是使用
<a href="test.html">test</a>
組成有 a 、 href 、 =
但是在ini檔中 可以看到 a、*、href、=
因為在 a 跟 href 可以插入其他的語法,所以 中間的 都以 * 代替
下載關鍵語語法 <img scr="p.jpg"> ,使用方式如上,如果有需要,可以自已更改。
抓取Yahoo漫畫極樂地獄為例:
啟始網址:
http://tw.comics.yahoo.com/080122/260/3ta8j.html
次頁關鍵:
首先對次頁連結按右鍵->內容
取得網址
多幾個網頁的比較之後,都大概是以下網頁內容為主
輸入 http://tw.comics.yahoo.com/*/260/
下載關鍵:
對圖檔按右鍵->內容,取得如下資料
多幾個網頁比較之後,大概是以下網址為主
輸入 http://tw.news.yimg.com/comics/comics_whatthehell/
接下來就選取
再按下
就可以抓取圖片了。
如有使用上問題、Bug、建議,請至各版本更新資料中留言,謝謝
如有此說明意見,請在此留言,非與說明意見相關,將刪除,請見諒
更新日期: 20080222
版本代號:0.3.01
更新資料如下:
執行頁:
系統:
以上,感謝網友建議。
更新日期: 20080215
版本代號:0.3
更新資料如下:
執行頁:
設定頁:
系統:
以上,如有[0.3版本]使用上問題、Bug、建議,請在此回應,謝謝。
最近在寫WAnts 的更新,使用 ie 透過 ActiveX,用wxWidgets 實在是不方便,有許多的錯誤,例如在IE7下抓取iFrame不知道為什麼一直錯誤,所以就想來裝裝看另一款有名的「WTL」。
在WTL安裝之前,請先安裝 PlamtForm SDK。我安裝的版本是「Microsoft Platform SDK for Windows Server 2003 SP1」
#pragma pack(pop)
/*
PVOID __stdcall __AllocStdCallThunk(VOID);
VOID __stdcall __FreeStdCallThunk(PVOID);#define AllocStdCallThunk() __AllocStdCallThunk()
#define FreeStdCallThunk(p) __FreeStdCallThunk(p)#pragma comment(lib, "atlthunk.lib")
*/
#define AllocStdCallThunk() HeapAlloc(GetProcessHeap(),0,sizeof(_stdcallthunk))
#define FreeStdCallThunk(p) HeapFree(GetProcessHeap(), 0, p)#elif defined (_M_AMD64)
#pragma pack(push,2)以上,也可以增加專案中的stdafx.h 修改如下:(由TabBrowser中 支援 2005 Express 參考)
//#ifdef _VC80X
// Support for VS2005 Express & SDK ATL
#define _CRT_SECURE_NO_DEPRECATE
#pragma conform(forScope, off)
#pragma comment(linker, "/NODEFAULTLIB:atlthunk.lib")
#pragma warning(disable: 4565) // redefinition; the symbol was previously declared with __declspec(noalias)
#pragma warning(disable: 4068) // unknown pragma
//#endif // _VC80X#include <atlbase.h>
//#ifdef _VC80X
// Support for VS2005 Express & SDK ATL
namespace ATL
{
inline void * __stdcall __AllocStdCallThunk()
{
return ::HeapAlloc(::GetProcessHeap(), 0, sizeof(_stdcallthunk));
}inline void __stdcall __FreeStdCallThunk(void *p)
{
::HeapFree(::GetProcessHeap(), 0, p);
}
};
//#endif // _VC80X
for(int i = 0; i < m_aChainEntry.GetSize(); i++)
[!if WTL_COM_SERVER]
1 TYPELIB "[!output PROJECT_NAME].tlb"
[!endif]
[!if WTL_USE_MANIFEST]
//CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "res\\[!output PROJECT_NAME].exe.manifest"
[!endif]
CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt.
就尋找專案中的 ".rc" 檔案,並注解掉
//CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST
以上,就是編譯WTL Sample 中遇到的問題,解決的方式。
名稱:好吃國
類型:巴西窯烤、半自助式
地址:台北市南京東路5段6號2樓
價位:午餐 330 + 10%
人員:11名
又一次大學同學的聚餐,回想也聚餐了不少次,這次的巴西窯烤,一開始在樓下時看著電視日本台的節目介紹,肉剛上來時,用刀子切下去時油滴下來的樣子,我同時口水也滴了下來。
所謂的半自助式,主餐「窯烤」出來的東西,是由幾個服務人員(有一個應該是老闆自已),在你桌面邊喊,「要不要吃啊 ~」「要不要吃啊~」,如果你要吃呢 就把劍上剛烤好的一串的東西分一些給你,另外還有自助式的餐點、飲料。
先講一下自助的餐點有:生菜沙拉、一些熟食(來不及吃,因為肉一直上來)、水果、甜點,湯是我覺得比較特別的,有羊肉爐、一點都不辣的麻辣鴨血,不過我覺得鴨血還不錯,有些地方的鴨血因為一直煮會變的有點老,不過這邊的完全不會,而且一咬下去汁都會噴出來,另外還有巴西蘑菇湯,不過蘑菇已經切碎,吃不到完整單個蘑菇,還是巴西的蘑菇湯,都是切碎的?
窯烤的主菜有:
豬肉,一整大塊串在劍上拿去烤,要吃的時候會切一小塊下來給你,切的時候會看到油噴射而出的樣子,應該算是招牌了。
魷魚圈,網路上蠻多人討論的,其實還不難吃也沒有網路上說的那麼硬,只不過我很好奇,怎麼每塊都看起來一樣大圈。
香蕉:這應該是最特別的菜了,香蕉烤了之後,烤的比較軟爛的比較好吃,會有烤香蕉的香味,甜味也會比較突出,就是會有點爛爛的,可能有些人不能接受。另外記住皮是不能吃的喔,吃到一半聽到隔壁桌的把皮也吃了下去,當下想問問說烤香蕉皮味道怎麼樣?
其他的東西還有:方型牛肉、方型魚肉、雞心、雞翅(沒有棒棒腿的部份,只有二節翅)、杏苞菇、青椒。
不是烤有的:絲瓜,不知道是不是我吃的少,覺得他們的煮絲瓜中間軟,外皮有點脆,還不錯,另外還有洋蔥圈、薯條(?)。
以上肉的部份會一直上,青菜就比較少了。聽網路說中午沒有羊肉,果然沒有烤羊的部份出現。
飲料由於感冒還沒好,只能喝熱的,喝了一杯巴西咖啡,非常淡沒什麼味道,還有熱紅茶倒是喝了不少,因為沒有其他熱飲。
感想:桌面有點小,其實盤子常常裝不滿,應該可以用小一點的,不然自助式的盤子,會不太夠放。還是因為晚餐比較豐盛。不過以這個價位吃到飽,已經還不錯了。