freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

easyx教程(編輯修改稿)

2025-07-22 06:36 本頁面
 

【文章內(nèi)容簡介】 或者”,兩數(shù)的對應二進制位只要有一個是 1,結(jié)果的二進制位就是 1;否則,結(jié)果的二進制位為 0。 C 語言用符號 | 表示。 如: 二進制:0101 | 0110 = 0111 用十進制表示就是:5 | 6 = 7 4. XOR 表示“異或”,兩數(shù)的對應二進制位不同,結(jié)果的二進制位為 1;相同,結(jié)果的二進制位為 0。 C 語言用符號 ^ 表示。 如: 二進制:0101 ^ 1110 = 1011 以上只是簡單介紹一下,詳細的還是請大家看課本上的講解。 二、 位運算的應用 位運算的應用很多,例如 AND 和 OR 在獲取和設置標志位時經(jīng)常使用。更多的,以后大家會逐漸遇到,暫時先記下有這么回事。 這里著重說一下 XOR 運算,它有一個重要的特性:(a ^ b) ^ b = a 也就是說,a ^ b 之后可能是某些其它數(shù)字,但是只要再 ^b 一下,就又成了 a。 一些簡單的加密就用的 XOR 的這個特性。 至于繪圖,假如 a 是背景圖案,b 是將要繪制的圖案,只要用 XOR 方式繪圖,連續(xù)繪兩次,那么背景是不變的。 三、 演示我們來一個簡單的繪圖 XOR 運算演示: include include void main() { initgraph(640, 480)。 // 初始化 640 x 480 的繪圖窗口 setlinestyle(PS_SOLID, 10)。 // 設置線寬為 10這樣效果明顯 setlinecolor(GREEN)。 為綠色 // 設置畫線顏色, rectangle(100, 100, 200, 200)。 // 畫一個矩形,當做背景圖案 setwritemode(R2_XORPEN)。 // 設置 XOR 繪圖模式 setcolor(RED)。 線顏色為紅色 // 設置畫 line(50, 0, 200, 300)。 // 畫線 getch()。 // 等待按任意鍵 line(50, 0, 200, 300)。 式重復畫線會恢復背景圖案) // 畫線(XOR 方 getch()。 // 等待按任意鍵 closegraph()。 圖窗口 } // 關閉繪運行一下,看到第一次畫線后,矩形與直線相交的部分,顏色變成了青色,青色就是白色和紅色 XOR 的值。當再次以紅色畫線時,青色部分消失了,還原為完整的白色矩形框。 四、 完整的范例 來一個相對完整的范例吧,就是鐘表程序,三個表針用的都是 XOR 方式繪制,請大家運行體會一下 XOR 的作用: include include include define PI void Draw(int hour, int minute, int second) { 五、 作業(yè) circle(320, 240, 2)。 circle(320, 240, 60)。 circle(320, 240, 160)。 outtextxy(296, 310, _T(BestAns))。 // 設置 XOR 繪圖模式 setwritemode(R2_XORPEN)。 // 設置 XOR 繪圖模式 // 繪制表針 SYSTEMTIME ti。 // 定義變量保存當前時間 whilekbhit()) (! // 按任意鍵退出鐘表程序 { GetLocalTime(amp。ti)。 // 獲取當前時間 Draw(, , )。 // 畫表針 Sleep(1000)。 // 延時 1 Draw(, , )。 // 擦表針(擦表針和畫表針的過程是一樣的) } closegraph()。 // 關閉繪圖窗口 } 最后給出的繪制時鐘的例子,很不完善,有不少問題。請完善該程序。例如樣式上,表盤上沒有刻度,沒有數(shù)字,指針靠中心的一端應該長出來一點點,表盤太簡單。還有就是嘗試發(fā)現(xiàn)并改進功能實現(xiàn)上的問題。 十 用鼠標控制繪圖/游戲程序 捕獲鼠標消息就像捕獲按鍵消息一樣簡單。對于按鍵,通常我們會先檢查是否有按鍵,然后定義一個變量保存按鍵,再然后根據(jù)該按鍵的值,執(zhí)行相應的程序。 對于鼠標,道理是一樣的。先寫個代碼對比一下: 獲取按鍵: 獲取鼠標: char c。 MOUSEMSG m。 if (kbhit()) if (MouseHit()) c = getch()。 m = GetMouseMsg()。 很簡單吧。由于鼠標消息的內(nèi)容太多,不像按鍵那么簡單,因此需要用一個結(jié)構體來保存。通過該結(jié)構體,我們可以獲取鼠標的如下信息: struct MOUSEMSG { UINT uMsg。 // 當前鼠標消息 bool mkCtrl。 // Ctrl 鍵是否按下 bool mkShift。 // Shift 鍵是否按下 bool mkLButton。 // 鼠標左鍵是否按下 bool mkMButton。 // 鼠標中鍵是否按下 bool mkRButton。 // 鼠標右鍵是否按下 int x。 // 當前鼠標 x 坐標 int y。 // 當前鼠標 y 坐標 int wheel。 // 鼠標滾輪滾動值 }。 其中,“當前鼠標消息”可能是以下值: WM_MOUSEMOVE 鼠標移動消息 WM_MOUSEWHEEL 鼠標滾輪撥動消息 WM_LBUTTONDOWN 左鍵按下消息 WM_LBUTTONUP 左鍵彈起消息 WM_LBUTTONDBLCLK 左鍵雙擊消息 WM_MBUTTONDOWN 中鍵按下消息 WM_MBUTTONUP 中鍵彈起消息 WM_MBUTTONDBLCLK 中鍵雙擊消息 WM_RBUTTONDOWN 右鍵按下消息 WM_RBUTTONUP 右鍵彈起消息 WM_RBUTTONDBLCLK 右鍵雙擊消息 例如,判斷獲取的消息是否是鼠標左鍵按下,可以用: if ( == WM_LBUTTONDOWN) ... 下面舉一個綜合的例子(我偷點懶,直接粘貼的繪圖庫幫助里面的鼠標范例),該程序會用紅色的點標出鼠標移動的軌跡,按左鍵畫一個小方塊,按 Ctrl+左鍵畫一個大方塊,按右鍵退出: include include void main() { // 初始化圖形窗口 initgraph(640, 480)。 MOUSEMSG m。 // 定義鼠標消息 while(true) { // 獲取一條鼠標消息 m = GetMouseMsg()。 switch() { case WM_MOUSEMOVE: // 鼠標移動的時候畫紅色的小點 putpixel(, , RED)。 break。 case WM_LBUTTONDOWN: // 如果點左鍵的同時按下了 Ctrl 鍵 if () // 畫一個大方塊 rectangle(, , +10, +10)。 else // 畫一個小方塊 rectangle(, , +5, +5)。 break。 case WM_RBUTTONUP: return。 // 按鼠標右鍵退出程序 } } // 關閉圖形窗口 closegraph()。 } [本節(jié)作業(yè)] 1. 畫一個填充的三角形,要用鼠標點選三角形的三個頂點。提示:可以用 fillpoly 函數(shù)畫多邊形。 2. 寫一個“格子涂色”的游戲,要求:屏幕上有 16x8 的格子,屏幕底部有類似畫筆中的選色區(qū)(隨便放上一些常用的顏色),鼠標點擊選擇區(qū)的顏色后,就作為當前顏色,然后再點屏幕上的格子,就可以用剛才的顏色填涂相應格子。 十一 隨機函數(shù)簡介 游戲中,許多情況都是隨即發(fā)生的。還有一些圖案程序,例如屏保,也是隨即運動的。這就需要用隨機函數(shù)。 隨機函數(shù)很簡單,只有一個: rand() 該函數(shù)返回 0~32767 之間的一個整數(shù)。(不需要記住 32767 這個數(shù)字,大概知道這個范圍就行了) 該函數(shù)在頭文件 中,使用前記得引用。 [簡單測試] 來寫個程序測試一下: include include void main() { int r。 for(int i=0。 i10。 i++) { r = rand()。 printf(%d\n, r)。 } } 執(zhí)行后,可以看到輸出了 10 個隨機數(shù)字。 [指定范圍的隨機函數(shù)] 實際中,我們經(jīng)常要產(chǎn)生指定范圍的隨機函數(shù),通常我們用求余數(shù)的辦法。例如,產(chǎn)生 0~9 之間的隨機數(shù),只需要將任意產(chǎn)生的隨機數(shù)除以 10 求余數(shù)即可。求余數(shù)的運算符號是 %,我們可以這樣做: r = rand() % 10。 修改前面的測試程序執(zhí)行后可以看到,產(chǎn)生的
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1