久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

C語(yǔ)言圖形編程入門:graphics.h環(huán)境配置、核心API與動(dòng)畫避坑實(shí)戰(zhàn)

C語(yǔ)言圖形編程入門:graphics.h環(huán)境配置、核心API與動(dòng)畫避坑實(shí)戰(zhàn) 簡(jiǎn)介這是一份適用于 C/C 傳統(tǒng)圖形編程的 graphics.h 頭文件及配套庫(kù)文件資源包主要面向需要在老版 Visual Studio如 VC98 環(huán)境中完成圖形學(xué)實(shí)驗(yàn)、控制臺(tái)繪圖練習(xí)或課程設(shè)計(jì)的開發(fā)者。將相應(yīng)頭文件與庫(kù)文件分別拷貝到 VS 的 Include 與 Lib 目錄后即可直接調(diào)用 initgraph、line、circle 等圖形函數(shù)免去手動(dòng)配置編譯環(huán)境的麻煩。壓縮包體積僅 46KB包含 4 個(gè)文件其中 2 個(gè) .h 頭文件負(fù)責(zé)函數(shù)聲明與常量定義2 個(gè) .lib 庫(kù)文件提供鏈接階段所需的實(shí)現(xiàn)代碼結(jié)構(gòu)簡(jiǎn)單、即下即用適合剛從 C 語(yǔ)言入門轉(zhuǎn)向圖形界面開發(fā)的學(xué)習(xí)者。目前平臺(tái)已有 9183 人瀏覽學(xué)習(xí)說(shuō)明對(duì)解決經(jīng)典圖形編程環(huán)境配置問(wèn)題具有較高的參考價(jià)值。1. graphics.h 是 C 語(yǔ)言圖形編程的入坑起點(diǎn)也可能是第一道勸退門檻graphics.h 是 Turbo C 時(shí)代圖形接口BGI的頭文件也是很多人第一次在 C 語(yǔ)言里接觸像素繪圖時(shí)遇到的那個(gè)“老朋友”。它能解決一個(gè)很樸素的問(wèn)題在課程作業(yè)或競(jìng)賽演示里用一兩百行 C 代碼畫出直線、圓、矩形、填充色和簡(jiǎn)單動(dòng)畫而不用引入大型圖形框架。適合正在上 C 語(yǔ)言課的學(xué)生、帶圖形學(xué)實(shí)驗(yàn)課的老師以及想快速做一個(gè)算法可視化 Demo 的從業(yè)者。但它的坑也肉眼可見(jiàn)環(huán)境配置繁瑣、坐標(biāo)系統(tǒng)反直覺(jué)、中文亂碼、虛擬機(jī)上黑屏。這些從不是你的代碼寫錯(cuò)而是你對(duì)這套老接口的運(yùn)行方式還不夠熟。這篇文章會(huì)把從環(huán)境搭建、API 參數(shù)、動(dòng)畫寫法到故障排查的完整路徑講清楚照著做就能跑起來(lái)。2. 跑通 graphics.h環(huán)境選型與最小可編譯工程2.1 為什么還在用 graphics.hBGI 的運(yùn)行機(jī)制與歷史包袱graphics.h 不是標(biāo)準(zhǔn) C 庫(kù)的一部分它屬于老版本 Turbo C 里自帶的 Borland Graphics Interface縮寫 BGI。頭文件里只聲明了 initgraph、setcolor、line、circle 這些函數(shù)真正干活的代碼在對(duì)應(yīng)的圖形驅(qū)動(dòng)文件里通常是 .BGI 后綴的二進(jìn)制驅(qū)動(dòng)比如 EGAVGA.BGI。也就是說(shuō)graphics.h 的繪圖本質(zhì)上是運(yùn)行時(shí)加載驅(qū)動(dòng)再由驅(qū)動(dòng)直接操作顯存和硬件寄存器。理解了這一點(diǎn)你就明白為什么現(xiàn)代操作系統(tǒng)上直接寫#include graphics.h 編譯容易通過(guò)一運(yùn)行就黑屏或報(bào)錯(cuò)——因?yàn)闆](méi)有那層驅(qū)動(dòng)加載環(huán)節(jié)。老程序必須在 DOS 環(huán)境或兼容層里運(yùn)行讓 initgraph 能找到 .BGI 文件并且讓顯卡模式切換邏輯生效。這也是后續(xù)所有環(huán)境選型的出發(fā)點(diǎn)要么找 DOS 模擬器要么找把 BGI 調(diào)用映射到 Windows 或 Linux 圖形 API 的兼容實(shí)現(xiàn)。2.2 方案一Turbo C 3.0 DOSBox最保真適合課程作業(yè)如果你要原汁原味地把教材里的代碼跑出來(lái)最常見(jiàn)做法是裝一個(gè) DOSBox 模擬器里面放一套老版本 Turbo C。DOSBox 負(fù)責(zé)模擬完整的 VGA 顯示環(huán)境initgraph 的 DETECT 模式能正常探測(cè)顯卡.BGI 驅(qū)動(dòng)也能順利加載。我一個(gè)典型啟動(dòng)腳本會(huì)這樣寫把裝有 Turbo C 的目錄掛載為 C 盤dosbox -c mount c: /home/me/tc -c c: -c cd tc -c tc.exe說(shuō)明第一段命令把本機(jī)的 tc 目錄映射成 DOSBox 里的 C 盤第二段切換到 C 盤第三段進(jìn)入 Turbo C 的安裝目錄第四段啟動(dòng) IDE。如果你是 Windows 本機(jī)目錄把 /home/me/tc 換成對(duì)應(yīng)路徑即可。進(jìn)去之后在 IDE 里寫下面這段最小程序然后編譯運(yùn)行#include graphics.h #include conio.h int main() { int gd DETECT, gm; initgraph(gd, gm, .); circle(320, 240, 50); getch(); closegraph(); return 0; }說(shuō)明initgraph 的第一個(gè)參數(shù)傳 DETECT 表示讓系統(tǒng)自動(dòng)檢測(cè)顯卡類型檢測(cè)結(jié)果會(huì)回填到 gm 里第三個(gè)參數(shù)傳英文句點(diǎn) .意思是 BGI 驅(qū)動(dòng)文件從當(dāng)前目錄加載。circle 的 x 和 y 是圓心坐標(biāo)第三個(gè)參數(shù)是半徑。getch 讓程序等待按鍵后再退出否則窗口一閃而過(guò)。這個(gè)方案的好處是兼容性極好老代碼原樣編譯基本都能跑壞處是編輯體驗(yàn)差、分辨率低、窗口小不適合做較大的項(xiàng)目。它的定位明確拿來(lái)跑課程實(shí)驗(yàn)、驗(yàn)證老代碼而不是做新開發(fā)。2.3 方案二Windows 下用集成工具包省去 DOS 模擬如果你在 Windows 上又不想每次開 DOSBox另一個(gè)常見(jiàn)做法是使用把 BGI 移植到 Windows 圖形環(huán)境的集成工具包。這些工具包通常是某位開發(fā)者把老 Borland 編譯器的 Windows 版驅(qū)動(dòng)封裝了一下讓 graphics.h 的函數(shù)最終調(diào)用 Windows 的繪圖 API窗口可以實(shí)實(shí)在在顯示在桌面上。使用步驟一般是下載并解壓工具包注意把整個(gè)目錄放在不含中文字符和空格的路徑下。打開 IDE新建一個(gè) C 語(yǔ)言工程。在工程設(shè)置里把 include 路徑指向工具包自帶的 include 目錄把庫(kù)路徑指向 lib 目錄。新建源文件寫代碼時(shí)仍然include graphics.h。編譯運(yùn)行代碼和 DOS 時(shí)代的寫法完全一致連 initgraph 的參數(shù)都不用改。這套方案解決的最大痛點(diǎn)是從 DOSBox 切來(lái)切去它把一個(gè)窗口掛在 Windows 桌面上調(diào)試起來(lái)順手很多。缺點(diǎn)是這些工具包對(duì)陳舊的代碼更友好對(duì)現(xiàn)代的 64 位編譯器和寬字符處理就不太行了。如果你只是交一次課程作業(yè)它比 DOSBox 效率高如果要長(zhǎng)期維護(hù)我更推薦下面第三條路。2.4 方案三在現(xiàn)代編譯器里用兼容實(shí)現(xiàn)可移植性最強(qiáng)還有一類場(chǎng)景是你在 Linux 或 macOS 上做實(shí)驗(yàn)不想用 Windows 工具包也不想裝 DOSBox。這時(shí)最常見(jiàn)的路線是找一套用現(xiàn)代圖形庫(kù)封裝 BGI 接口的兼容實(shí)現(xiàn)它提供同名頭文件和同名函數(shù)底層把繪圖翻譯成系統(tǒng)的窗口事件和幀緩沖。我用這種方案時(shí)會(huì)先確認(rèn)三件事include 目錄里有沒(méi)有真正的 graphics.h和系統(tǒng)自帶的頭文件是否沖突。庫(kù)文件是否已經(jīng)編譯好編譯命令里有沒(méi)有加 -l 參數(shù)鏈接它。運(yùn)行時(shí)會(huì)不會(huì)要求額外放置 .BGI 驅(qū)動(dòng)文件還是庫(kù)里已經(jīng)內(nèi)置了軟件渲染路徑。這三步里最容易踩坑的是頭文件沖突。有些系統(tǒng)自帶的圖形相關(guān)頭文件也叫 graphics.h如果你的編譯命令沒(méi)指定 include 搜索路徑編譯器可能找到錯(cuò)誤版本。所以編譯命令里我一般會(huì)顯式指定 -I 指向兼容庫(kù)目錄避免玄學(xué)問(wèn)題。這條路的優(yōu)勢(shì)是代碼能跟著現(xiàn)代編譯器走可以配合 Makefile 或 CMake 管理缺點(diǎn)是某些老代碼里的細(xì)節(jié)行為比如字體表、顏色映射和真實(shí) BGI 不完全一致偶爾會(huì)有顯示偏差。作為工程取舍我通常優(yōu)先用它做新項(xiàng)目用 DOSBox 做老代碼的核對(duì)基準(zhǔn)。3. 核心 API 與坐標(biāo)系統(tǒng)把像素、顏色和窗口關(guān)系一次理清3.1 initgraph 三個(gè)參數(shù)驅(qū)動(dòng)、模式、路徑寫錯(cuò)一個(gè)就黑屏graphics.h 里最重要的函數(shù)是 initgraph它的簽名是 void initgraph(int *graphdriver, int *graphmode, char *pathtodriver);第一個(gè)參數(shù)傳驅(qū)動(dòng)編號(hào)第二個(gè)參數(shù)傳分辨率模式第三個(gè)參數(shù)傳驅(qū)動(dòng)文件路徑。最常見(jiàn)的組合是第一個(gè)參數(shù)傳 DETECT自動(dòng)檢測(cè)第二個(gè)參數(shù)傳 0 或者留空讓系統(tǒng)決定第三個(gè)參數(shù)傳 .。但自動(dòng)檢測(cè)不等于不踩坑在虛擬機(jī)或者某些兼容環(huán)境下DETECT 可能會(huì)誤判顯卡選一個(gè)太老或太高的模式導(dǎo)致畫面花掉或直接退出。老模式的常用取值與分辨率關(guān)系如下模式常量典型分辨率適用場(chǎng)景DETECT自動(dòng)探測(cè)絕大部分場(chǎng)景VGA640x480標(biāo)準(zhǔn)老程序EGA640x350老硬件模擬CGA640x200最低兼容我建議在可靠性優(yōu)先時(shí)不要完全依賴 DETECT而是手動(dòng)指定 VGA 和 640x480這樣無(wú)論宿主機(jī)什么環(huán)境畫面大小都是可預(yù)期的。修改方式是把 initgraph 改成 initgraph(gd, gm, )然后在調(diào)用前給 gd 賦 DETECT、給 gm 賦 VGA 對(duì)應(yīng)的數(shù)值或者直接在庫(kù)文檔里查 VGA 模式編號(hào)。手動(dòng)指定模式后坐標(biāo)范圍就固定了這也是排除黑屏問(wèn)題最快的一招。3.2 繪圖函數(shù)族line、circle、rectangle、bar、ellipse 的邊界與填充規(guī)則graphics.h 的繪圖函數(shù)非常多但工程上常用的沒(méi)幾個(gè)。你需要把它們按“描邊”和“填充”兩類分開記line(x1, y1, x2, y2)畫直線不填充。circle(x, y, radius)畫空心圓不填充。rectangle(x1, y1, x2, y2)畫空心矩形兩個(gè)點(diǎn)是左上角和右下角。bar(x1, y1, x2, y2)畫實(shí)心矩形不需要額外填充。ellipse(x, y, startAngle, endAngle, xRadius, yRadius)畫橢圓弧角度范圍可以控制是整圓還是扇形。畫一個(gè)圓并填充的代碼如下#include graphics.h #include conio.h int main() { int gd DETECT, gm; initgraph(gd, gm, ); setfillstyle(SOLID_FILL, RED); setcolor(RED); circle(160, 120, 40); floodfill(160, 120, RED); getch(); closegraph(); return 0; }說(shuō)明setfillstyle 設(shè)置填充模式和填充顏色setcolor 設(shè)置描邊顏色circle 畫出紅色邊界圓floodfill 從內(nèi)部點(diǎn) (160, 120) 開始填充直到碰到邊界色 RED 才停止。注意 floodfill 的第三個(gè)參數(shù)必須傳邊界顏色通常就是剛才 setcolor 設(shè)置的顏色如果你把邊界色參數(shù)寫成填充色它找不到閉合邊界會(huì)一直往邊緣擴(kuò)散把整個(gè)屏幕填滿。這個(gè)搭配是 BGI 最常見(jiàn)的翻車點(diǎn)之一其實(shí)完整流程應(yīng)該是先 setcolor 設(shè)邊界色再 circle再 setfillstyle 設(shè)填充色最后 floodfill。如果你先調(diào) setfillstyle 再調(diào) setcolor邊界色和填充色就會(huì)串最終結(jié)果完全不是預(yù)期的樣子。3.3 顏色與填充特殊性setcolor、setbkcolor、setfillstyle 的配合邏輯BGI 支持的顏色是老 16 色調(diào)色板顏色編號(hào)從 0 到 15對(duì)應(yīng) BLACK、BLUE、GREEN、CYAN、RED、MAGENTA、BROWN、LIGHTGRAY、DARKGRAY、LIGHTBLUE、LIGHTGREEN、LIGHTCYAN、LIGHTRED、LIGHTMAGENTA、YELLOW、WHITE。這里有個(gè)容易忽略的點(diǎn)setbkcolor 設(shè)置背景色但它只影響整個(gè)屏幕的背景不清除已有內(nèi)容clearviewport 才會(huì)把整個(gè)視口按背景色清空。如果程序里想“刷新畫面”很多新手會(huì)用 setbkcolor clearviewport結(jié)果發(fā)現(xiàn)顏色變深了、畫面閃得厲害。更穩(wěn)的做法是保留舊畫面不動(dòng)只在需要擦除的區(qū)域用原來(lái)的背景色重畫或者直接用 putimage 回寫背景緩沖。顏色錯(cuò)誤在實(shí)際運(yùn)行中表現(xiàn)出的癥狀通常是圓畫完之后 floodfill 顏色不對(duì)或者整屏被某個(gè)顏色鋪滿或者圖形“消失”在背景里。遇到這種狀況不要懷疑顯卡驅(qū)動(dòng)先檢查 setfillstyle、setcolor、floodfill 三個(gè)調(diào)用順序和參數(shù)90% 的問(wèn)題都在這里。3.4 文本輸出與字體為什么 outtextxy 默認(rèn)會(huì)亂碼graphics.h 里的 outtextxy 用來(lái)在指定位置輸出文本但它默認(rèn)使用的是 BGI 內(nèi)嵌的 8x8 點(diǎn)陣英文字體。如果你直接傳入中文字符串絕大多數(shù)兼容實(shí)現(xiàn)會(huì)顯示成亂碼或空白。原因是點(diǎn)陣字體表里沒(méi)有中文字形中文編碼又涉及雙字節(jié)老接口根本不認(rèn)識(shí)。繞過(guò)方式有兩種一種是把文本內(nèi)容用英文或拼音表達(dá)配合 settextstyle 設(shè)置字體大小勉強(qiáng)夠用另一種是自繪漢字字形把每個(gè)漢字先做成位圖數(shù)據(jù)再用 putimage 貼上去。很多課程項(xiàng)目里所謂的“中文菜單”其實(shí)都是后端維護(hù)一張漢字點(diǎn)陣表然后逐字貼圖而不是靠 outtextxy 直接顯示中文。所以在設(shè)計(jì)程序結(jié)構(gòu)時(shí)我建議把界面文案與繪圖邏輯分離。需要顯示中文時(shí)用位圖方式需要穩(wěn)定和通用時(shí)用英文字符。這樣既不依賴 BGI 字體也不容易被不同平臺(tái)差異絆住。4. 動(dòng)手寫一個(gè)可運(yùn)行的圖形 Demo小球運(yùn)動(dòng)且不閃屏4.1 Demo 目標(biāo)和整體結(jié)構(gòu)從 initgraph 到 draw 循環(huán)一個(gè)能體現(xiàn) graphics.h 核心用法的 Demo我通常會(huì)選“小球沿圓周運(yùn)動(dòng)同時(shí)畫一條從圓心指向小球的線”。它同時(shí)覆蓋直線、圓、顏色、坐標(biāo)計(jì)算、循環(huán)刷新和鍵盤退出足夠檢驗(yàn)環(huán)境是否正常。整體流程是初始化圖形模式 → 保存一塊空白背景區(qū)域 → 進(jìn)入循環(huán) → 每幀先恢復(fù)背景 → 畫圓心 → 畫小球 → 延時(shí) → 處理按鍵退出 → 釋放內(nèi)存、關(guān)閉圖形模式。這里關(guān)鍵的幀循環(huán)設(shè)計(jì)如下#include graphics.h #include conio.h #include math.h #include stdlib.h #define RADIUS 20 int main() { int gd DETECT, gm; int x0 320, y0 240; int track 120; int x, y, size; void *canvas; double t; initgraph(gd, gm, ); size imagesize(x0 - track - RADIUS, y0 - track - RADIUS, x0 track RADIUS, y0 track RADIUS); canvas malloc(size); getimage(x0 - track - RADIUS, y0 - track - RADIUS, x0 track RADIUS, y0 track RADIUS, canvas); while (!kbhit()) { for (t 0; t 6.283; t 0.05) { if (kbhit()) break; x x0 (int)(track * cos(t)); y y0 (int)(track * sin(t)); putimage(x0 - track - RADIUS, y0 - track - RADIUS, canvas, COPY_PUT); setcolor(LIGHTBLUE); line(x0, y0, x, y); setfillstyle(SOLID_FILL, RED); setcolor(RED); circle(x, y, RADIUS); floodfill(x, y, RED); delay(16); } } free(canvas); closegraph(); return 0; }代碼邏輯說(shuō)明imagesize 先計(jì)算一個(gè)矩形區(qū)域所需的內(nèi)存字節(jié)數(shù)getimage 把這塊空白背景抓取到 canvas。之后每幀循環(huán)的第一步 putimage 把 canvas 貼回相同位置相當(dāng)于擦掉上一幀的畫面避免用 clearviewport 整屏清空。這樣動(dòng)畫不會(huì)閃屏也是老代碼里最常見(jiàn)的緩存技巧。參數(shù)說(shuō)明track 是軌道半徑控制小球離圓心的距離9 里的 6.283 是 2π讓角度 t 走完一整圈0.05 是角度步長(zhǎng)調(diào)大動(dòng)畫更跳躍調(diào)小更平滑delay(16) 約等于 60 幀每秒這是 VGA 時(shí)代的常用刷新節(jié)奏。如果你發(fā)現(xiàn)動(dòng)畫太快優(yōu)先加 delay而不是在循環(huán)里空轉(zhuǎn)空轉(zhuǎn)會(huì)白白占滿 CPU。4.2 getimage/putimage 的機(jī)制為什么它能治閃屏BGI 本身就是立即模式?jīng)]有雙緩沖概念每畫一筆都直接寫屏幕。所以當(dāng)你用 clearviewport 整屏清空時(shí)屏幕會(huì)經(jīng)歷“全空 → 逐筆重繪”的過(guò)程人眼就會(huì)看到閃爍。解決思路不是去優(yōu)化逐筆繪制的速度而是不整屏清空。getimage 的作用是把屏幕上某個(gè)矩形區(qū)域的像素?cái)?shù)據(jù)復(fù)制到內(nèi)存里putimage 負(fù)責(zé)把這塊數(shù)據(jù)原樣貼回屏幕。如果你在做動(dòng)畫之前先把背景存下來(lái)每幀動(dòng)畫開始前把背景貼回去那屏幕恢復(fù)的是“上一次圖形出現(xiàn)之前的畫面”而不是變成空白閃爍自然減少。這個(gè)手法在 graphics.h 里算標(biāo)準(zhǔn)答案但在更現(xiàn)代的圖形庫(kù)里早被雙緩沖替代。如果你以后轉(zhuǎn)到其他框架雙緩沖會(huì)直接把繪制發(fā)生在幕后緩沖區(qū)最后一次性呈現(xiàn)。理解 getimage/putimage 的用意能幫你更平滑地理解什么叫“像素緩存”和“幀緩沖”。4.3 鍵盤退出與幀率控制kbhit、getch、delay 的配合細(xì)節(jié)kbhit 是個(gè)容易被忽略但很重要的函數(shù)它檢測(cè)“是否有鍵盤輸入”而不阻塞程序。動(dòng)畫循環(huán)里每幀調(diào)用一次 kbhit按鍵時(shí)返回真然后退出循環(huán)程序才能正常結(jié)束。單獨(dú)用 getch 會(huì)阻塞在那里等按鍵動(dòng)畫就無(wú)法持續(xù)運(yùn)行所以正確的組合是while (!kbhit()) { /* 每幀繪制邏輯 */ delay(16); }delay 的參數(shù)單位是毫秒它把當(dāng)前線程掛起一段時(shí)間作用是限制幀率。如果你去掉 delay動(dòng)畫速度會(huì)被主頻托著走可能快到看不出軌跡如果 delay 參數(shù)太大動(dòng)畫又像幻燈片。我一般用 16 毫秒對(duì)應(yīng)大概 60 幀課程演示時(shí)也可以調(diào)到 30 毫秒讓節(jié)奏更明快。還有一點(diǎn)要注意循環(huán)退出后不要馬上 closegraph先釋放通過(guò) malloc 申請(qǐng)的 canvas再關(guān)閉圖形模式否則在某些兼容層上可能產(chǎn)生內(nèi)存層面的小告警。老編譯器不一定報(bào)錯(cuò)但養(yǎng)成先釋放再關(guān)閉的習(xí)慣后面移植到現(xiàn)代環(huán)境時(shí)能少很多麻煩。5. 避坑graphics.h 最常見(jiàn)的五個(gè)翻車現(xiàn)場(chǎng)5.1 初始化黑屏DETECT 模式在虛擬機(jī)里選錯(cuò)驅(qū)動(dòng)現(xiàn)象程序運(yùn)行后屏幕一黑過(guò)一會(huì)兒恢復(fù)或者干脆報(bào)錯(cuò)退出。原因虛擬機(jī)顯卡和 BGI 的 DETECT 自動(dòng)探測(cè)結(jié)果不匹配探測(cè)模式選到不支持的顯存布局。解決不要依賴 DETECT手動(dòng)指定模式。把 int gd DETECT, gm; 改成 int gd VGA, gm VGAMAX;然后 initgraph(gd, gm, )它會(huì)把分辨率鎖定為 640x480繞過(guò)探測(cè)。實(shí)際經(jīng)驗(yàn)里這一步能解決八成黑屏。5.2 編譯不過(guò)頭文件找不到與圖形庫(kù)未鏈接現(xiàn)象編譯器提示 graphics.h 找不到或者 link 階段報(bào)一堆未定義符號(hào)。原因include 路徑?jīng)]有指向 BGI 頭文件目錄鏈接時(shí)沒(méi)有加圖形庫(kù)參數(shù)。解決先確認(rèn)你用的工具鏈?zhǔn)悄膫€(gè)再看它的 include 和 lib 目錄配置。DOSBox 里的 Turbo C 需要把 .BGI 驅(qū)動(dòng)放在當(dāng)前目錄Windows 工具包需要在工程設(shè)置里手動(dòng)加圖形庫(kù)Linux 下的兼容實(shí)現(xiàn)則需要編譯命令加 -l 參數(shù)。這屬于環(huán)境配置問(wèn)題不是代碼問(wèn)題排錯(cuò)時(shí)先看編譯器輸出信息而不是盯著 C 語(yǔ)言代碼逐行找。5.3 圖像上下顛倒BGI 原點(diǎn)在左上角現(xiàn)象用數(shù)學(xué)函數(shù)畫的拋物線、正弦曲線都倒過(guò)來(lái)了。原因BGI 的坐標(biāo)系統(tǒng)是屏幕坐標(biāo)原點(diǎn)在左上角x 向右增大y 向下增大而數(shù)學(xué)坐標(biāo)里 y 向上增大。解決封裝一個(gè)坐標(biāo)轉(zhuǎn)換函數(shù)把邏輯坐標(biāo)轉(zhuǎn)成屏幕坐標(biāo)再傳給繪圖函數(shù)。常見(jiàn)做法是int toScreenX(int x) { return x; } int toScreenY(int y) { return maxY - y; }說(shuō)明maxY 是當(dāng)前模式下的最大 y 值比如 640x480 里取 479。所有“數(shù)學(xué)坐標(biāo)畫圖”的代碼都經(jīng) toScreenY 轉(zhuǎn)換圖形方向和直覺(jué)一致。這個(gè)小封裝可以說(shuō)是 graphics.h 里最實(shí)用的工具函數(shù)沒(méi)有之一。5.4 顏色錯(cuò)亂填充色與邊界色混用現(xiàn)象floodfill 要么填不進(jìn)去要么把整個(gè)屏幕填滿。原因floodfill 的第三個(gè)參數(shù)需要邊界顏色而你傳成了填充色或者 setcolor 和 setfillstyle 的調(diào)用順序反了。解決遵循固定套路——先 setcolor 設(shè)邊界色畫邊框再 setfillstyle 設(shè)填充色最后 floodfill 傳邊界色。我自己寫代碼時(shí)會(huì)專門抽一個(gè) fillCircle 輔助函數(shù)void fillCircle(int x, int y, int r, int border, int fill) { setcolor(border); circle(x, y, r); setfillstyle(SOLID_FILL, fill); floodfill(x, y, border); }說(shuō)明這樣調(diào)用方不用關(guān)心邊界色和填充色的先后問(wèn)題傳參時(shí)也不容易把兩個(gè)顏色寫反。BGI 的 16 色調(diào)色板在不同兼容實(shí)現(xiàn)里可能有細(xì)微色差但參數(shù)邏輯始終一樣。5.5 中文亂碼點(diǎn)陣字體不認(rèn)漢字現(xiàn)象outtextxy 輸出中文文本窗口里顯示成亂碼、問(wèn)號(hào)或方塊。原因BGI 自帶字體表只有英文點(diǎn)陣不包含中文字形。解決不要在 graphics.h 原生的 outtextxy 里直接放中文字符串。你能做的是要么用英文界面要么自己準(zhǔn)備漢字點(diǎn)陣。課程項(xiàng)目里如果必須顯示中文常見(jiàn)做法是先把每個(gè)漢字做成小位圖再用 putimage 逐字貼出雖然麻煩但至少可控。只要你理解了這是字體表的限制就不會(huì)在同一個(gè)坑里反復(fù)試。6. 進(jìn)階用一層 draw 封裝把 graphics.h 代碼帶到現(xiàn)代窗口環(huán)境6.1 定義最小繪制接口如果你不滿足于只在教材環(huán)境里跑通我推薦一個(gè)讓我少走很多彎路的做法在 graphics.h 之上再包一層薄薄的統(tǒng)一接口。這樣業(yè)務(wù)代碼只依賴你自己定義的 draw 接口不直接依賴 graphics.h將來(lái)?yè)Q任何現(xiàn)代圖形庫(kù)時(shí)只替換實(shí)現(xiàn)文件不用動(dòng)業(yè)務(wù)邏輯。先定義一個(gè)極小的頭文件/* draw.h */ #ifndef DRAW_H #define DRAW_H void draw_open(int width, int height); void draw_close(void); void draw_pixel(int x, int y, int color); void draw_line(int x1, int y1, int x2, int y2, int color); void draw_text(int x, int y, const char *s, int color); void draw_present(void); int draw_key(void); #endif說(shuō)明draw_open 負(fù)責(zé)初始化窗口draw_close 負(fù)責(zé)清理draw_pixel 和 draw_line 是基礎(chǔ)圖形原語(yǔ)draw_present 表示把緩沖顯示到屏幕draw_key 詢問(wèn)是否有按鍵輸入。這個(gè)接口刻意省略了很多復(fù)雜能力只保留最常用的部分因?yàn)榻涌谠秸惶鎿Q成本越低。6.2 用 graphics.h 實(shí)現(xiàn)這套接口底層的實(shí)現(xiàn)文件長(zhǎng)這樣/* draw_graphics_impl.c */ #include draw.h #include graphics.h #include conio.h void draw_open(int width, int height) { int gd DETECT, gm; initgraph(gd, gm, ); } void draw_close(void) { closegraph(); } void draw_pixel(int x, int y, int color) { putpixel(x, y, color); } void draw_line(int x1, int y1, int x2, int y2, int color) { setcolor(color); line(x1, y1, x2, y2); } void draw_text(int x, int y, const char *s, int color) { setcolor(color); outtextxy(x, y, (char *)s); } void draw_present(void) { /* graphics.h 是立即模式畫面直接落屏無(wú)需交換緩沖 */ } int draw_key(void) { return kbhit(); }說(shuō)明這個(gè)實(shí)現(xiàn)幾乎是一層透?jìng)?。graphics.h 本身沒(méi)有緩沖機(jī)制所以 draw_present 是空操作。將來(lái)你換到某個(gè)現(xiàn)代圖形庫(kù)時(shí)只需要把 draw_open 改成創(chuàng)建窗口和渲染器把 draw_present 改成交換前后緩沖其他函數(shù)一一對(duì)應(yīng)即可。參數(shù)說(shuō)明color 參數(shù)沿用 graphics.h 的 0-15 編號(hào)你可以在接口里約定自己的顏色枚舉然后在實(shí)現(xiàn)層轉(zhuǎn)換成不同圖形庫(kù)的顏色值。6.3 驗(yàn)證方法一條對(duì)角線和一個(gè)延時(shí)循環(huán)封裝完成之后用一個(gè)簡(jiǎn)單的驗(yàn)證程序檢查接口是否正常畫一條從左上角到右下角的對(duì)角線如果顯示成 45°說(shuō)明坐標(biāo)和顏色鏈路都通了再做 10 秒動(dòng)畫用 draw_key 退出說(shuō)明輸入鏈路也正常。驗(yàn)證通過(guò)后這份代碼就是你可以反復(fù)復(fù)用的基礎(chǔ)層。#include draw.h int main() { draw_open(640, 480); draw_line(0, 0, 639, 479, 14); draw_present(); delay(2000); draw_close(); return 0; }說(shuō)明14 是黃色delay 2000 毫秒讓窗口停留兩秒方便肉眼確認(rèn)。只要這個(gè)程序正常說(shuō)明你的 draw 接口和 graphics.h 綁定層沒(méi)問(wèn)題業(yè)務(wù)代碼可以放心往上寫。我最初把所有繪圖代碼都直接塞在 main 里每次換環(huán)境都要改一大片。后來(lái)某次要在另一個(gè)圖形框架上做模擬演示吃夠了移植的苦才下狠心抽出這層接口?,F(xiàn)在不管是寫課程實(shí)驗(yàn)還是競(jìng)賽 Demo我都先從 draw 接口出發(fā)底層選 graphics.h 還是別的庫(kù)只是換一個(gè)實(shí)現(xiàn)文件的問(wèn)題。這個(gè)習(xí)慣讓我少翻了很多次車希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
立川理惠无码一区二区| 久久精品人妻一区二区| 午夜福利一区二区影院| 日日躁狠狠躁天天躁精品| 久久久一级| 亚洲图片激情综合另类| 亚洲男人天堂AV| 97爱啪| 精品99999久久久久久| 99精品久久久久久久婷婷| 婷婷午夜清品久久久久久久性色视频观| 91九九九小逼| 91红杏| 日韩精品99999| 亚洲激情在线一区二区| 极品极品色影院| 操逼免费视频无码国产| av毛片aaaaa免费看| 美国三级日本三级久久99| 久久亚州高清| 天美国产精品| 亚洲情色电影网| 九九性爱网| 国产不卡免费在线视频| 久久久久久精品免费看A级| 欧美岛国精品在线观看| 欧美色偷偷| 午夜久久久| 欧美精品久久96人妻无码| 久久极品伊人| 欧美亚综合色图| 欧美 亚洲 偷拍自拍| 九色精品视频导航1| 亚洲成人性爱网站在线播放| 精品射1999| 91l欧美在线| 视频在线观看一二三区| 韩日男人的天堂| 少妇 综合| 96精品在线| 久久超碰久| 又黄又爽在线观看视频| 狠狠 91| 五月天婷婷激情| 久久老子无码午夜伦不卡| 欧美亚洲日本激情在线| 欧美做爰无码A片视频| 91粉嫩萝控精品福利网站_精品影音先锋国| 少妇厨房愉情理伦片bd在线观看 | 999精品久久久久久久| 欧美桃色网| 超碰97 线线 在现| 91 综合 色| 欧美色图20p| 久久久久久久久999| 9Ⅰ超碰| 600国产精品视频| 高清无码人妻久久久一区二区三区aⅴ| 天天综合站| 综合网少妇| 色噜噜国产精品视频一区二区| 91亚洲人| 日韩无码操逼片| 久久三| 97色色视频| 97干色天堂| 久偷拍欧美日韩三区| www.acm成人黄色毛片| 麻豆av一区二区| 成人五月天丁香激情综合| 在线欧美69V免费观看视频| 久久一区二区高清免费| 92福利社视频| 午夜无码熟妇丰满人妻| 日韩欧美日韩| 国产一级黄色片在线观看| 九九这里只有精品| 岛国人妻少妇av在线观看| 亚洲天堂电影网| 久久二| 五月婷婷色色| 三上制服丝AV| 欧美双插| 亚洲国产成人精品无码专区| 日韩欧亚太美不卡| 日韩色香| 午夜福利成人免费视频| 超碰人妻中文在线| 国产精品剧情| 99热最新网址| 97超碰这里只有精品| 久久久四区| 国产中文精品一区二区在线观看| 国产原创精品| 亚洲啪啪综合?v一区综合精品区| 最近的最新的中文字幕视频| 91精品久久久久久77777| 国产精品久久久啊| 九九久久99| 狠狠干妹子| 男女性感激情网站| 国精品一区二区三| 欧洲精品一级二级精品综合视频综合 | 久久成人精品| 自拍大香蕉乱插| 女一区二区| 性欧美91| 丁香六月激情综合| 国产精品另类| 亚洲另类电影| 99超碰网| 亚洲宅男天堂| 丁香婷婷五月| 三级片大波波| 操比国产| 97人妻人人躁人人玩人人| 国产精品福利视频播放| 日本啊啊啊啊啊视频| 中文字幕三四区| 污污汅18禁网站在线永久免费观看| 蜜臀AV成人精品蜜臀| 国产怡红院在线| 日韩AV无码中文一区二区| 久久久18禁| 久久性爱视频免费看| 涩涩五月天| 国产精品香蕉| 亚洲熟女一区| 可以在线观看AV的网站| 色亚州人久干视频在线观看免费版| 少妇一级无码精品| 97综合国产精品高潮久久| yiqicaoav| 91n处女在线观看| 97国产精品一区| 精品成人av一区二区三区在线| 伊人色综合欧美| 国产精品久久久久中文字幕| 91在线国产后入风骚翘臀美女素人| 欧日a| 美女91色黄18| 精品国产乱码久久久久A| 99久久国产精品免费高潮| 岛国小电影| 夜夜操美女| 足交视频老司机| 日本精品高清一二区一本到| 中文字幕一区二区无码成人 | 伊人991| 老司机老司机午夜影院| 快播久久人人aV| 欧洲天天在线| 强奸乱伦亚洲第一页| 97jingpin| 动漫爆乳3D奶水一区在线观看| 丰满人妻一区二区三区免费| 色欲人妻一区二区在线| 色999亚洲人成色| 好属操| m欧洲一级午老| 激情第四色| 成人av福利在线观看| 抽插一区二区视频| 亚洲天堂自拍| 九九九九日本 | 极品后入免费视频| 国产精品一区人妻精品阁在线| 日韩欧洲操屄视频| 久久专区| 97视频在线免费| 超碰爽人妻熟女Av| 国产精品午夜高潮呻吟久久av| 啊啊嗯嗯好爽| 粉嫩久久久极品| 91色女| 久久精品三级影视| 91视频伊人| 骚货操死你| 东京热熟女亚洲视频网站| 超踫中文字幕| 六月丁香五月婷婷| 日韩久久激情精品| 黄色片大香蕉| 国产野战露脸在线播放| 综合伊人激情| 色五月AV| 久久人| 大干人妻| 日韩人人精品| 中文字幕诱惑制服人妻丝袜美丝袜美 | 久操99| 亚洲激情av| 91丨九色丨国产丨人妻在线| 波多野结衣之双飞调教在线播放| 先锋女优在线观看视频| 淫淫综合网| 青青草影视蜜久久| 欧洲综合色图| 超碰九7免费| 亚洲欧美骚| 天天热精品| 91黑丝操| 久久久久久人体| 情色五月天就去干| 99精品无码| 欧美骚少妇| 欧美丝袜美女电影一二三四区| 亚洲大胆人体av| 亚洲吊色| 高清无码在线播放网站| 亚洲综合激情五月久久| 最近2018中文字幕在线高清第一页| 加勒比综合a∨| 8050无码八戒| 青青久久艹| 国模不卡| 乱伦AVxx| 激情综合五月丁香| 91狠狠色丁香婷婷综合久久| 亚洲欧洲网站免费观看| 97色色婷婷| 日韩精品区二区三区不卡| 中文字幕啊啊啊在线观看视频| 97操碰| 色欧美天天| 欧美日韩情色一区二区| 97免费视频网| 超碰在线1234区| 97久久国产亚洲精品超碰热| 后入合集| 在线日韩精品一区二区三区| 成 人 A V免费视频在线观看| 国产无码精品高清| 黄网在线播放| 久久九七| 国产精品夜夜夜| 天天爽天天操啊啊啊| 操逼国产免费| 丁香六月婷婷| 99热精品国产| 啊啊啊啊,啊啊好多水| 91欧美情色| 极品销魂美女一区二区| 自拍偷拍 高清无码| 亚洲免费人妻在| 五月天社区| 欧美熟爽综合| 51一区二区三区| 天天噜| 三男一女不戴套的A片| 日日操免费视频| 亚洲国产精品成人无码久久久| 噜噜噜狠狠色综合| 97国产天堂岛| 精品美女少妇一区二区| av爱爱爱| 久久精品人体| 精品女同一区| 看免费一级在线播放毛片| 国产网站在线播放| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 色乱二区| 欧美色图中文字幕| 日本不卡中文| 91成人久久| 超碰亚洲97| 精品视频久久区| 亚洲男人天堂网| 国产亚洲精品美女久久久m| 精品久久久久久亚洲| 人妻少妇色综合| 野狼福利社区| 另类一区| 97超碰久| 亚洲欧美精品国产一区二区| 中文字幕视频在线观看一区二区| 欧美的精品的视频| 丰满的三级少妇欧美久久久| 97超碰在线资源网站| 欧美高清色| 留下AⅤ黄色片| 美骚妇av高清在线| 9国产超碰| 人妻丝袜无 码视频专区| 91国内外在线| 久久亚洲AV无码专区国产精品| 蜜臀在线免费观看在线免费观看| 九九碰九九爱97超碰| 欧美一区二区三区日韩| 亚洲 欧美日韩 另类| 亚洲综合成人网| 国产污视频麻豆传媒一区二区| 夜夜 中文视频rt| 啊啊在线| 久热婷婷| 久久久久久人体| 欧美东京热精品A∨| 亚洲 欧美 另类 日韩 人妻一区| 操人人| 99国产精品人妻人伦| 欧美色图校园春色| 色播丁香| 久久系列| 色综合加勒比四四季| 成人国产视频在线观看| 亚洲情色五月天| 91另类| 天天看天天综合成人网| 亚洲婷婷丁香在线| 日本日日色视频| 国产操逼视频在线观看| 国产第二页| 久久毛卡| 欧美色图校园春色| 久操黄色视频| 中文字幕一区二区三区字幕| 男人的天堂日本东京热| 国产精品视频白浆免费| 91白嫩| 久久久精品电影| 婷婷五月天成人网| 久久9亚洲| 美欧老女人97| 亚洲综合中文字幕有码| 91四海无码日韩欧美| 欧美 亚洲 偷拍自拍| 97人人爱人人乐| 免费观看欧美日韩操逼视频| 日韩啊V| 97爱亚洲综合色| www.91逼逼.com| 久久久久久九九九九九九| 亚洲欧美激情在线视频| 九九热九九| 韩国女主播青草在线| 丝袜美腿制服人妻二区中文字幕 | 隔壁邻居波多野结衣中文字幕| 狠狠图片青青草| www网站黄| 天天综合中文字幕 91| 久久综合中文国产| 午夜男女爽爽爽在线视频 | av在线一区二区三区| 五月天婷婷社区| 国产性感骚丝袜在线| 国产综合永久精品日韩鬼片| 性色A∨91| 欧洲自拍色图gif在线| 人妻熟女一区在| 内射黑丝袜| 另类欧美| 欧美 中文字幕 一区| 亚洲最新av无码成人精品区| 97超碰精品| 另类成人首页一区| 国产夜夜艹| 国产亚洲色婷婷久久99精品91葵花宝典| 久久有码视频| 久久久久久久六六| 国产久久久9999| 日韩激情啪啪| 9国产超碰| 美女91在线| 人人操人人射人人干| 少妇高潮99p| 在线人人人人人人精品超| WWW操逼| 亚洲熟女av中文字幕| 成人性爱av| 91亚洲综合在线| 俺去啦自拍| 蜜桃久久久久久久久久久久| 久久视网78| 韩国轻伦国内自拍一区| 亚洲天天艹| 国内外色色色色色成人视频| 91精品黄在线观看| 五月天色五月| 国产在线76页| 亚洲欧美精品一区天堂久久 | 男人天堂无码| 国产精品一区二区麻豆| 熟女熟妇一区二区三区视频| www.acm成人黄色毛片| 超碰97导航| A男人的天堂| 人妻少妇三级| 男人的天堂2000| 骚人妻少妇视频| 九九国产| 久久久久久人体| 東南亚性呦成人伦理资源在线视频| 色婷婷一区二区三区久久午夜| 亚洲日本天堂| 精品人妻久久久| 国产专区第一页| 亚洲男人久久综合天堂| 操逼天美3区| 操操吧亚洲乱伦视频| 飘花国产午夜精品不卡| 1024人妻熟女一区二区三区| 欧美色图电影| 殴美色网| 五月婷婷综合网| 色综合99999| 中文字日本乱码| 欧美,日韩综合久久| 国产在线能看的你懂的| 亚洲欧美色图小说| 欧美经典一区二区三区| 国产精品乱码久久久久久久久久久久| 亚洲a色| 午夜欧美女人操逼| 国产日本熟女顶级一区二区三区视频| 91观看 国产白丝| 国产高清午夜成人在线观看| 中日韩久久人妻一区二区| 精品网站9999| 亚欧操逼片在线观看 | 久久久久国产| 一级免费精品| aaa亚无码专区| 操操碰| 伊人操操| 三级激情网站| 不卡在线观看视频| 色老大| 婷婷五月天伊人| 97精选久久| 97碰久久| 日韩免费一级性爱视频| 六月丁香网| 五月婷婷丁香六月丁香| 午夜福利合集| 国产精品不卡一区二区三区| 亚洲欧美日韩电影网站一区 | 亚洲精品乱码久久久久久蜜桃麻豆| 欧美72网页| 18禁久极品美女久久哦哟呀!| 六月婷婷激情| 国产白嫩精品久久| 67914亚洲精品| 日本精品九九九| 91精品国产91久久福利| 国产激情在线| 欧美精品99久久久**| 国产一区二区二区按摩精品啪视频| 亚洲男人天堂2012| 超碰日本97美女人妻人人玩人人爱| 人人爽天天爽| 中文字幕在线免费观看2| 色香AV| 东北女人av| 五月天久久人妻| 柠檬AV导航| 久久久久白虎| 亚洲不卡av在线| 亚洲av综合伊人久久| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲精品官网在线观看| 久久人妻无码毛片A片麻豆| 成人免费性爱视视| 精品亚洲国产成人AV制服丝袜| 天天日骚逼熟女| 久久国产视频性吧 | 欧州一区二区三区四区| 国产一区二区久久| 黄色大片一区二区密桃丝袜| 妇女性内射冈站HDWWWCOM| 久久、1234| av九九| 岛国激情视频在线观看| 天美91| 日本久久999| 97九色人妻| 在线综合色| 亚洲激情视频| 91国产大片| 日韩性爱网址| 国产精品不卡av免费在线观看| 色网综合网| 成人综合网 欧美| 婷婷成人五月天| 黑人精品成人一区二区三区 | 影音先锋每日最新资源在线观看 | 亚洲男人的天堂亚洲| 91激情国产| 中文字幕五月婷婷免费| 欧美日韩另类激情图片| 少妇色综合| 亚洲宅男天堂| 国产福利第一视频| 激情接吻视频久久久久久| 最新日本中文字幕| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 精精品人妻一区二区三区| 亚洲色图综合网| 试看福利| 一二三四视频在线社区中文字幕| 我中文字幕6区| 东京热av男人的天堂| 啊啊啊97视频| 欧洲大香蕉| 欧美亚洲美少妇一区二区| 亚射在线| 丝袜av一区二区三区| 青娱乐手机日韩在线视频| 91久久国产综合精品| 91女优在线观看| 精品国产国产AV| 操老熟女AV| 日韩欧美成人综合在线| 97久久超碰| 91九色在线| 九九玖玖精品| 精品97久久| 欧洲亚洲人妻无码久久三区四区| 天美传媒av一区二区| 超碰色大香蕉| 日韩熟女乱伦中出| 国产视频一区二区免费| 综合熟女| 很黄很污的免费网站| 91性感网站| 91女日逼| 国产JDAV无码视频在线观看| 草莓精品视频| 日本三级日本三级三级人妇四虎| 亚洲天堂美臀在线| 欧美97免费| 人人看黄色视频| www九九热| 久久久111| 色悠久| 国产又爽又黄| 97在线日韩中文字幕| 亚洲色偷偷色噜噜狠狠99网| 欧美成人精品一区二区男人蜜臀| 岛国AV一区二区电影| 日韩激情视频| 97av,com| 亚州男人天堂| 日韩福利综合一区| 亚洲精品亚洲人成在线麻豆| 国产免费永久精品无码| 99热综合在线| 夜夜嗨一区二区三区三州加勒比 | 国产欧美美女免费观看视频| 在线天堂999| 伊人嫩草| 欧美高清18A片| 999岛国大片| 97舔舔| 在线 欧美 亚洲| 久久精品一区二区一8| 操屄不卡视频| 都市激情人妻一区二区青青操视频 | 亚洲 国产 精品一区| 久久久999日本大片| 老女人91| 91人妻最真实刺激绿帽| 97超碰碰碰| 欧美92| 911粉嫩人妻| 色超碰综合| 日本一区二区三区午夜观看| 密桃99999| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 中文字幕人妻色偷偷久久皮| 日本三级久| 欧美不卡在线一区二区| 伊人五月天激情| 在线中文字幕极品av| 国产伦精品一区二区三区在线观| 嗯啊不要在线观看嗯啊| yirendaxiangjiashipin| 嗯嗯啊操我| 亚洲精品人妻吞精av| 国产精品久久aV| 97在线观看免费| 26uuu最新| 久久久久久久久9| 69久久久久久久久久久久久| 中文字幕在线观看二区三区| 久久激情视频| 伊人操你| se01国产在线视频| 成人日本精品九区| 青青欧洲黑| 青青草原人妻| 无码人妻精品一区二区三区九九| 少妇蹲下露出大唇5| 97超碰超欧美。| 五月色网| 在线观看一级α片刺激高潮视频| 懂色AV一区二区三区| 三上制服丝AV| 亚洲熟妇图片| 美女啊啊啊啊啊啊| 国产三级中文字幕粉嫩| 久久综合久久综合人久久夜精品| 五月天激情网站| 日韩人成网站在线播放| 亚洲欧综合另类无码一区| 国产精品无码成人精品| 午夜男女爽爽爽影院视频| 青青草中文字幕| 精品国产乱码久久久A| 黄站在线免费观看| 欧美亚洲国产日本在线,久久精品国产| 国产婷婷一区| 在线观看视频91| 亚洲综合校园春色| 亚洲人妻久久久| 天天天堂影视日韩亚洲91| 国产AV人人夜夜澡人人爽麻豆| 高跟伊人julia ann| 欧美黑人与女人91~| 久久中出在线| 久久久久久少妇| 69丨亚洲丨精品丨入口免费播放| 蜜臀99久久精品久久久久久| 91综合中文字幕| 日韩精品一区二区高清| 天天草天天干天天日| 999国产精品999| 狠狠操夜夜操蜜桃视频三区| 亚洲妇色| 凹凸 69堂 在线播放| 国产免费小视频| 欧洲欧美视频一区二区| 久久婷婷五月| 色色综合97| 色色婷婷五月| 在线国产福利网址导航| 婷婷色播婷婷| 丰满少妇一区二区三区专区| 丰满欧美放荡少妇在线| 日韩免费中文字幕视频| 精品人妻av在线播放| 91人人臊| 亚洲天堂情色| av中亚| 综合久久婷婷| 99无码视频| 物尤视频一区二区| 91操熟女视频| 亚洲αv一区二区三区| 96AV精品| 人妻天堂网| 国产免费一区在线观看| www.一本大99| 综合亚洲欧美| 国产18精品亚洲精品| 天天综合网1| 超碰97护士| 激情五月综合网| 91影视亚洲| 日本熟女免费視颖| 中文字幕精品久久久久人妻红杏ⅰ| 日韩在线国产字幕| 婷婷中文字幕| 久久黄黄黄| 国产伦乱91| 国产超碰97| 欧美色图欧美| 久久精品国产精品亚洲艾通辽熟妇 | 欧美一区二区三区入口| 亚洲吊色| 欧美网站免费| 91超碰在线观看| 激情五月天综合网| 久久久久国色αv免费观看| 狠狠操狠狠爱| 亚洲免费成人在线高清无码视频 | 思思热在线观看| 草b在线| 测评在线观看AV| 91亚洲不卡一区| 97人人夜夜精品视频| 天天操美美| 97人妻碰碰中文无码久热丝袜| 欧州91高潮| 九九九九九九九九九五码| 女人喷水视频在线观看| 精品999一区二区| 国产精品91ai| 乱色视频中文字幕| 亚洲视频中文一区| 超碰碰小说97| 99热超碰| 美女被艹尤物视频| 被窝影院午夜看片无码| 五月天精品| 久久蜜桃综合网| 手机在线看片免费人成视频| 亚洲AV无码乱码| 九九九九精品一区| 中文字幕av色| 日本 欧美 国产一区| 国产精品国产亚洲区艳妇糸列| 99999这里都精品| 青青草自拍视频在线播放| 97人妻免费中文字幕| 国产成人久久精品蜜臀| 欧美色道啊| 青娱乐大香蕉| 日本亚洲vr欧美不卡高清专区| 日韩午夜精品一区二区三区电影| 日本乱人伦片中文三区| 99re28在线观看| 日本欧美m v精品网站加| 日本熟妇熟色97一本在线观看| 福利视频一区二区微拍| 人人人摸人人| 99999精品| 亚洲欧美综合图片| 后入式五六区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲国产另类在线中文| 中文有码9| 亚洲偷91色| 黄日韩| 啊啊啊啊二区好大| 亚洲图片欧美制度| 亚洲18禁| 精品精品精品| 六六久久日韩不卡| 丁香激情五月天| 亚洲五月婷婷| 偷看洗澡一二三区美女| 日本高清_区二区三区| 亚洲欧洲自拍图片专区满春格| 97超碰护士| 久久啊啊啊| 97干97色| 91操操操操| 日韩av无码网站| 亚洲?V高清一区二区三区尤物| 亚洲熟女综合一区二区| 久久久久白虎| 久久系列| 在线综合网| 亚洲激情片| 日本一级真人黄色性爱视频| 国产成人久久精品蜜臀| 国产精品午夜AV完会免费| 日韩亚洲欧美中文字幕| 在线观看中文字幕| 人人人摸人人| 91精品国产日韩欧美综合| 夜夜天天噜狠狠爱2021| 国产熟女乱论| 成人性爱电影网| 欧洲色| 国产欧美一区二区| 狠狠热这里都是精品| 天天内射| 欧美亚洲天天| 人人人干干人人干| 亚洲精品一二区| 国产一级做a爰大片免费久久| 天美麻花大全视频| 国产伦精品免编号公布| 人妻大相焦在线| 天堂综合| 亚洲欧美不卡线| 国产多人在线观看视频| 性爱边摸边日免费AV| 亚洲一区中文字幕一区| 国产久久一区二区午夜| 久久久久久久久久久久黄色| 天天天堂影视日韩亚洲91| 天堂成人网| 日韩免费三级黄片电影| 天天天天天天天天天天干美女| 91超级碰| 秋霞一区二区三区四区五区六区七区| 亚洲精品国产熟女久久久| 欧美色图亚洲色| 国产精品亚洲天堂网址| 91超级碰碰| 亚洲欧美日韩有码| 啪啪啪男女亚洲中文字幕99| 日本淫乱女一区二区三区视频| 久久国产性爱| 欧美第一页性| 美女网站黄页| 大学生美女口爆| 亚洲日韩国产欧美综合v| 成人影 天天操 亚洲| 国产高清在线自在拍69| 日韩欧美亚洲自拍偷拍| 国产精品一区二区 尿失禁| 天天综合网国产| 亚洲图片欧美另类综合免费视频大大香| 中文字幕乱亚洲美女精品一区| 国产精品成人无码a v毛片| www.婷婷五月天| 亚洲 综合 第一页| 中文字幕在线免费观看2| 亚洲色欲天天人妻无码系列专区| 操香逼| 嗯嗯不要视频| 久久AV无码网址| 蜜臀久久久国产| 一级一性爱免费视频| 黄色高清无码无码破解免费暗网| 啊啊啊97视频| 中文字幕av亚洲精品| 91久久久久久久久18| 91/欧美| 你懂的在线观看区国产| 欧美视频在线第3页| 国产精品一二三| 五月丁香拍拍激情综合三级| 久久最新视频免费观看| 五月丁香激情四射| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 78p欧美| 色激情综合网站| 精品国产乱码久久久久A| 日韩天天综合| 国产日韩欧美三级片 | 99爱爱| 中文熟女五十乱码在线| 日韩美女操b| 中文字幕神马久久| 日韩性爱1级片视频| 97在线欧洲| 狠狠色噜噜狠狠狠狠2018| 久久久久性熟视频| 精品九九| 国产乱婷婷精品二区三区| 亚洲图片欧美| 91久久精品国产| 试看日韩黄片| 美女的肌被草喷水视频| www.色吧5.com| 97超碰逼| 两性色网| 色天天野狼综合社区| 亚欧高清v| 国产精品另类| 午夜免费视频1000| 男人的天堂 在线一区| 丝袜狠狠草尤物人妻av91| 永久电影三级在线观看| 超碰99热中文字幕| 久久国产乱子伦精品免费女人| 大香网伊人久久综合网eew| heyZO天然素人无码AⅤ专区| 亚洲精品美女操逼| 激情接吻视频久久久久久| 大干人妻| 中亚av| 黑人白女精品一区| 人人妻天天做天天爽| 综合五月婷婷| 20cm女自慰在线日韩欧美| 最新亚洲风情电影| 操逼啊啊啊91| 伦理第一页| 爱爱动态试试看6 0秒| 美女极品一区二区三区| 久久久久久久久女黄| 蜜桃成人1区2区3区| 成人无遮挡毛片免费看| 天欧美在线| 久久久久久午夜男人的天堂| 国产资源中文字幕在线| 加勒比人妻综合| 婷婷伊人綜合中文字幕| 日本精品中文字幕视频| 加勒比av网| 欧洲综合视频| 午夜偷拍久久熟女| 欧美97超碰| 大香蕉一人在线| 久草五月| 中文日本免费高清| 蜜臀99精品国产高清在线观看| 青青草视频爽一爽| 国产91久久九九免费精品无码| 97综合在线| 91N综合网在线| 亚洲熟女乱色| 在线国产探花| 国产一区二区三区视频在线看| 欧亚 另类 久| 情侣操 逼视频99| 夜夜嗨一区二区| 国产浮力影院第1页| 九九九色| 精品国产乱码久久久影院| 中文字幕乱码人妻一区二区三区,99精品 | 麻豆这里只有精品| 国产精品人人爽人人做可爱福利| 人妻熟女一区二区在线视频| 国产精品网站免费| 夜夜肏2021| 新版天堂中文资源8在线| 国内精品嫩模A∨私拍小视频| 四虎av在线| 99热大香蕉伊在线| 四虎视频在线观看| 男人天堂.AB| 九月婷婷综合| 久久精品国产亚洲AV无码电影| 日本性爱视频一级| 日本不卡在线二区三区| 91九色丰满高潮| 婷婷五月天无码| 精品人妻一区二区免费蜜桃| 加勒比大香蕉视频在线| 国产AV高清AV无码| 日本视频一区二区三区| 秋霞成人做爱| 无码高清少妇久久| 精品国模无码| 欧美后入| 在线亚洲欧美| 干超碰碰熟女| 97免费在线观看| 久久精品国产亚洲粉嫩| 一本大道久| 日本久久久精品电影| 中文日韩欧美熟| 欧美激情黑人| 综合性视频99| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照 | 色噜噜人妻av中文字幕| 天天超级碰碰碰| 亚洲欧洲无码一区夜| 日韩操呦呦影院在线观看| 二级久久网| 欧美日韩少妇色情| 最新av在线| 国产偷人妻精品一区二区在线| 嗯嗯啊好大| 在线情色电影 91大| 精品二999| 国内成人圈中文字幕无码视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 一区二区三区探花在线观看| 强奸乱伦AV网站| 郑州宾馆老熟女露脸啪啪| 人人摸人人添人人操 | 伊人伊人LD| 中文久久96| 9久9久| 激情欧美97| 视频一区二区免费在线| 精品美女久久久久| 国产精品嫩草影院免费| 精品国产一级久久| www.婷婷| 嗯……啊…嗯嗯…啊…好舒服| 九九九久久久久| 久久久96精品| 97资源久久| 狠狠操官网| 99久久精品国产高潮| 97人人干| 日韩av熟女一区二区三区成人| 97久久免费| 亚洲日本大香蕉1| 超碰97亚洲| 99国产精品视频尤物| 久久久成人国产精品无码| 天天日天天色| 国产美女91视频| 97国产精品久久久久| 久久久久久九| 日本成人A片免费看| 九九伊人网| 欧洲乱码视频| 国产精品日日摸天天碰| 在线亚洲 欧美 日本专区| 成人八戒网站| 香蕉99秘 精品一区丁香| 色娱乐色呦呦夜夜夜夜av| 东北老熟女| 日韩性爱视频在线免费观看| 激情专区综合| 久日91在线| 欧美 亚洲| 性爱免费视频成人| 一区二区偷拍拍视频| 狠综合网| 超碰在线一区| 国产无套粉嫩白浆在| 少妇天堂网络| 91中文字幕制服丝袜免费视频| 一二三四视频中文字幕在线看| 九九99久久| 亚洲丰满很很操| 日韩有码 一区二区三区| 日韩精品一区的| 欧美成人色| 欧美一区二区三区不卡高清视频| 欧日a| 久久女同性恋一二区| 97久久久| 亚洲成人在线播放| 亚洲色图第一页| 另类小说综合网| 91是天天| 中出欧美| 99热超碰在线| 日本天堂在线播放| 国产精品999zyz| 神马午夜久久久| 国产精品爆乳懂色蜜乳| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 97碰久久| 伊人久久婷婷| 激情婷婷丁香网| 国产精品宅男免费| 精品亚州18| 天天视频网站黄| 精品人妻1237| 欧美牲| 色女女女导航| 亚洲在线欧美| 久久久九97| 熟女精品日韩一区二区三区| 免费综合亚洲中文| 9997se| 熟女人妇一区二区三区| 久久一本大香蕉| 东北丰满熟女国产一区| 日韩美女高潮喷水视频| 九九热久久99精品re| 欧美色997| 眼镜人妻101.com| 亚欧中文字幕在线视频| 91视频精品| 精品国产72| 国产精品女生av| 亚av顶级裸体一区二区三区四区五区| av在线播放国产一区| 欧美日韩国产电影| 秋霞成人一级在线观看| 1二区9| 奇米狠999| 本道在线| 久久婷婷亚洲| 99夜夜操| 日韩精彩免费| 日韩人妻一区二区| 久久天天躁日日躁狠狠躁| 国产成人99久久亚洲综合| 中文字幕78| 欧美激情中文字幕另类小说| 99精品在线| 激情婷婷| 中日韩一区二区三区欧美| 成人天天看站长推荐| 手机在线播放国产福利| 人人妻人人色一区二区三区| 大香蕉啪啪网| 日韩欧美日韩| 亚洲第91页| 777奇米影视777四色| 加勒比综合88| 免費人妻夜夜爽天天爽爽一区| 眼镜人妻101.com| 亚洲人精品午夜不卡| 精品一区二区三区蜜桃臀赵总 | 韩国一级做A片免费的| 久久精品店| 九草在线大香蕉| 韩国黄色片精品久久久| 男人天堂电影院| 日韩资源网| 色播五月丁香| 日韩欧美成人午夜福利| 精品国产99999| 蜜桃中文字日产乱幕4区| 嫩草一区二区在线观看| 亚洲女人91| 色超碰综合| 97资源制服丝袜| 自拍视频一区在线观看| 91女色| 久久国产精品熟女人妻| 婷婷五月天AV| 久久久久久69国产一区二区| 亚洲美女高潮喷水视频| 国精品一区二区三| 一区二区三区机械有限公司| 人人操 欧美| 国产白丝网站| 日韩久久艹| 久久国产视频性吧 | 亚洲综合夜色| 久久不卡一区二区| 国产综合操逼高清| 74成人在线| 男人的天堂网页| 日本久久久精品电影| 色情亚洲日本成人| 91 亚洲 欧洲| 大香蕉丝袜一级片| 国产毛片在线| 日韩免费簧片| 搡老女人老熟女91老熟女综合网| 97在线观视频免费观看| 日韩中字av一区| AA丁香综合激情| 在线国产一区二区av| 天天做日日做| 波多野42部激情无码喷潮| 91中文字幕制服丝袜免费视频| 日韩大香蕉精品在线视频| 久草资源在线视频官方总站日韩丝袜美腿| 探花精品视频| 日本一区二区成人在线| 欧美伊人久久综合网| 日本成a人v网站在线观看| 97视频播放| 91精品国| 熟女熟妇一区二区三区视频| 97在线观看免费视频l| 少妇一区二区三区在线观看| 91亚洲人电影| 九九热视频在线观看| 激情久久久| 黄色毛片A片| 午夜电影在线观看无码专区| 亚洲国产精品久久久久婷婷青年| 色呦呦、国产精品| 99无码视频| 99热91| 十八禁视频网站| 色色色色网站| 极品白嫩美女白浆成人福利在线看| 天天操夜夜嗨| 欧美日韩国产中文精品字幕自在自线| 韩三级a视频在线观看 | 九九热免费国产视频婷婷伊人| 婷婷午夜| 日本三级韩国三级99| 色色国产| 吻戏激情性巴克| 999狠狠综合| 中文字暮97| 激情图片伦理国产一区二区日韩| 日本一区二区三区精品| 春色校园综合网| 综合网久久| 久热久操| 国产日韩中文字幕欧美| avav青青草久久夜| 久久精品超碰| 亚洲影院成人| 国产亚洲欧美每日在线| 免费一级黄色录像影片| 99精品久久久久久久婷婷|