Time of Update: 2018-12-04
第14課 圖形字型:在一課我們將教你繪製3D的圖形字型,它們可像一般的3D模型一樣被變換。 這節課繼續上一節課課的內容。在第13課我們學習了如何使用位元影像字型,這節課,我們將學習如何使用輪廓字型。 建立輪廓字型的方法類似於在第13課中我們建立位元影像字型的方法。但是,輪廓字型看起來要酷100倍!你可以指定輪廓字型的大小。輪廓字型可以在螢幕中以3D方式運動,而且輪廓字型還可以有一定的厚度!而不是平面的2D字元。使用輪廓字型,你可以將你的電腦中的任何字型轉換為OpenGL中的3D字型,
Time of Update: 2018-12-04
第15課 圖形字型的紋理映射:這一課,我們將在上一課的基礎上建立帶有紋理的字型,它真的很簡單。 在發布了前兩篇關於位元影像字型和輪廓字型的教程以後,我收到很多郵件,很多讀者都想知道如何才能給字型賦予紋理貼圖。你可以使用自動紋理座標產生器。它會為字型上的每一個多邊形產生紋理座標。
Time of Update: 2018-12-04
下載原始碼一、前言 前段時間,由於工作比較忙,沒有能及時地寫作。其間收到了很多網友的來信詢問和鼓勵,在此一併表示感謝。咳......我也需要工作來養家糊口呀...... 上回書介紹了兩種方法來寫自動化(IDispatch)介面的組件程式,一是用 MFC 方式編寫“純粹”的 IDispatch 介面;二是用 ATL 方式編寫“雙介面”的組件。二、IDispatch 介面和雙介面 使用者要想調用普通的 COM 組件功能,必須要載入這個組件的類型庫(Type library)檔案
Time of Update: 2018-12-04
在所有的預先處理指令中,#Pragma 指令可能是最複雜的了,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。#pragma指令對每個編譯器給出了一個方法,在保持與C和C++語言完全相容的情況下,給出主機或作業系統專有的特徵。依據定義,編譯指示是機器或作業系統專有的,且對於每個編譯器都是不同的。 其格式一般為: #Pragma Para 其中Para 為參數,下面來看一些常用的參數。 (1)message 參數。 Message
Time of Update: 2018-12-04
下載原始碼一、前言 我的 COM 組件運行時產生一個視窗,當使用者雙擊該視窗的時候,我需要通知調用者; 我的 COM 組件用線程方式下載網路上的一個檔案,當我完成任務後,需要通知調用者; 我的 COM 組件完成一個鐘錶的功能,當預定時間到達的時候,我需要通知調用者; ... ... ... ... 本回書開始話說 COM
Time of Update: 2018-12-04
下載原始碼一、前言 上回書介紹了回調介面,在此基礎上,我們理解連接點就容易多了。二、原理圖一、連接點組件原理圖。左側為用戶端,右側為服務端(組件對象) 看著好複雜呀......呵呵,其實簡單的緊:(注1)1、一個 COM 組件,允許有多個連接點對象(IConnectionPoint)。
Time of Update: 2018-12-04
寫出那些不會導致任何記憶體流失的代碼。很明顯,當你的代碼中到處充滿了new
Time of Update: 2018-12-04
第16課 霧:這一課是基於第7課的代碼的,你將學會三種不同的霧的計算方法,以及怎樣設定霧的顏色和霧的範圍。 這篇教程由Chris Aliotta編寫。 你想給你的OpenGL程式添加霧效?我將在這篇教程中教你如何去做。這是我第一次寫教程,我也只是OpenGL/C++編程的新手,所以如果你發現了什麼錯誤請告訴我而不是叱責我。本課的代碼基於第七課的代碼編寫。Data
Time of Update: 2018-12-04
第09課 3D空間中移動映像:你想知道如何在3D空間中移動物體,你想知道如何在螢幕上繪製一個映像,而讓映像的背景色變為透明,你希望有一個簡單的動畫。這一課將教會你所有的一切。前面的課程涵蓋了基礎的OpenGL,每一課都是在前一課的基礎上建立的。這一課是前面幾課知識的綜合,當你學習這課時,請確保你已經掌握了前面幾課的知識。
Time of Update: 2018-12-04
數位憑證採用公開金鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個使用者自己設定一把特定的僅為本人所知的私人密鑰(私密金鑰),用它進行解密和簽名;同時設定一把公用密鑰(公開金鑰)並由本人公開,為一組使用者所共用,用於加密和驗證簽名。當發送一份保密檔案時,發送方使用接收方的公開金鑰對資料加密,而接收方則使用
Time of Update: 2018-12-04
和所有初學者一樣,剛開始接觸新的東西,總想把畫面做的漂亮些,可是在vc中很難做到,比如對話方塊中按鈕等控制項的字型設定,就頗費了我一番功夫。 一。做成一個函數,改變字型大小,方法如下: 1。在最開頭聲明一個全域的字型指標 CFont *my_font=new CFont();//注意初始化,不可為空 2。在需要改變字型的地方調用函數: set_font(60,my_font,"隸書"); //字型大小、指標、名稱
Time of Update: 2018-12-04
(半) 透明位元影像原理及代碼
Time of Update: 2018-12-04
第10課 載入3D世界,並在其中漫遊:在這一課中,你將學會如何載入3D世界,並在3D世界中漫遊。這一課使用第一課的代碼,當然在課程說明中我只介紹改變了代碼。 這一課是由Lionel Brits
Time of Update: 2018-12-04
20課 蒙板:到目前為止你已經學會如何使用alpha混合,把一個透明物體渲染到螢幕上了,但有的使用它看起來並不是那麼的複合你的心意。使用蒙板技術,將會按照你蒙板的位置精確的繪製。 歡迎來到第20課的教程,*.bmp映像被給各種作業系統所支援,因為它簡單,所以可以很輕鬆的作為紋理圖片載入它。知道現在,我們在把映像載入到螢幕上時沒有擦除背景色,因為這樣簡單高效。但是效果並不總是很好。 大部分情況下,把紋理混合到螢幕,紋理不是太少就是太多。當使用精靈時,我不希望背景從精靈的縫隙中透出光來;
Time of Update: 2018-12-04
下載原始碼一、前言 我的 COM 組件運行時產生一個視窗,當使用者雙擊該視窗的時候,我需要通知調用者; 我的 COM 組件用線程方式下載網路上的一個檔案,當我完成任務後,需要通知調用者; 我的 COM 組件完成一個鐘錶的功能,當預定時間到達的時候,我需要通知調用者; ... ... ... ... 本回書開始話說 COM
Time of Update: 2018-12-04
第12課 顯示列表:想知道如何加速你的OpenGL程式嗎?這一課將告訴你如何使用OpenGL的顯示列表,它通過先行編譯OpenGL命令來加速你的程式,並可以為你省去很多重複的代碼。
Time of Update: 2018-12-04
第18課 二次幾何體:利用二次幾何體,你可以很容易的建立球,圓盤,圓柱和圓錐。 二次曲面是一種畫綜合物件的方法,這種方法通常並不需要很多的三角形。我們將要使用第七課的代碼。我們將要增加7個變數以及修改紋理以增加一些變化 : bool sp; // 空格鍵是否按下int part1; // 圓盤的起始角度int part2;
Time of Update: 2018-12-04
下載原始碼一、前言 程式設計中,錯誤處理必不可少,而且通常要佔用很大的篇幅。本回書著落在 COM 中的錯誤(異常)的處理方法。 在組件程式中,如果遇到錯誤,一般有兩個方式進行處理。二、簡單返回 對於比較簡單的錯誤,直接返回表示錯誤原因的
Time of Update: 2018-12-04
ICopyHook是一個用於建立拷貝鉤子處理常式COM介面,它決定一個檔案夾或者印表機對象是否可以被移動,拷貝,重新命名或刪除。Shell在執行這些操作之前,會調用ICopyHook介面的CopyCallback方法對它們進行驗證。CopyCallback返回一個int值指示Shell是否應該繼續執行這個操作。傳回值IDYES表示繼續,而傳回值IDNO和IDCANCEL則表示終止。一個檔案夾對象可以安裝多個拷貝鉤子處理常式。如果出現這種情況,Shell會依次調用每個處理常式。只有當每個處理常式都
Time of Update: 2018-12-04
下載原始碼一、前言 上回書介紹了回調介面,在此基礎上,我們理解連接點就容易多了。二、原理圖一、連接點組件原理圖。左側為用戶端,右側為服務端(組件對象) 看著好複雜呀......呵呵,其實簡單的緊:(注1)1、一個 COM 組件,允許有多個連接點對象(IConnectionPoint)。