void far putpixel(int x,int y,int pixelcolor);
云巖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,云巖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為云巖上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的云巖做網(wǎng)站的公司定做!
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
到目前為止,我們編寫的C 程序,其用于人機(jī)交互的提示或菜單都是英文
的,那么如何在沒有漢化的Turbo C 集成開發(fā)環(huán)境下編制顯示漢字的程序呢?
解決這一編程問題,我們首先必須了解有關(guān)漢字編碼及字庫的知識(shí)。根據(jù)對(duì)漢字使
用頻率的研究,可把漢字分成高頻字(約100 個(gè)),常用字(約3000 個(gè)),次常用字(約4000 個(gè)),
罕見字(約8000 個(gè))和死字(約45000 個(gè)),即正常使用的漢字達(dá)15000 個(gè)。我國(guó)1981 年公布
了《通訊用漢字字符集(基本集)及其交換碼標(biāo)準(zhǔn)》GB2312-80 方案,把高頻字、常用字、和
次常用字集合成漢字基本字符集(共6763 個(gè)),在該集中按漢字使用的頻度,又將其分為一
級(jí)漢字3755 個(gè)(按拼音排序)、二級(jí)漢字3008 個(gè)(按部首排序),再加上西文字母、數(shù)字、圖
形符號(hào)等700 個(gè)。
漢字編碼:
區(qū)位碼
國(guó)家標(biāo)準(zhǔn)的漢字字符集(GB2312—80)在漢字操作系統(tǒng)中是以漢字庫的形式提供的。漢
字庫結(jié)構(gòu)作了統(tǒng)一規(guī)定,即將字庫分成94 個(gè)區(qū),每個(gè)區(qū)有94 個(gè)漢字(以
位作區(qū)別)每一個(gè)漢字在漢字庫中有確定的區(qū)和位編號(hào)(用兩個(gè)字節(jié)),這就是所謂的區(qū)位碼
(區(qū)位碼的第一個(gè)字節(jié)表示區(qū)號(hào),第二個(gè)字節(jié)表示位號(hào),因而只要知道了區(qū)位碼,就可知道
該漢字在字庫中的地址,每個(gè)漢字在字庫中是以點(diǎn)陣字模形式存儲(chǔ)的,如一般采用16×16
點(diǎn)陣形式,每個(gè)點(diǎn)用一個(gè)二進(jìn)位表示,存1 的點(diǎn),當(dāng)顯示時(shí),可以在屏上顯示一個(gè)亮點(diǎn),存
0 的點(diǎn),則在屏上不顯示,這樣把存某字的16×16 點(diǎn)陣信息直接用來在顯示器上按上述原
則顯示,則將出現(xiàn)對(duì)應(yīng)的漢字。
內(nèi)碼
漢字使用兩字節(jié)表示,國(guó)家制定了統(tǒng)一標(biāo)準(zhǔn),稱為國(guó)標(biāo)碼。國(guó)標(biāo)碼規(guī)定,每個(gè)字節(jié)使用
后面7 位,第一位為0。為了區(qū)別于英文的ASCII 碼,國(guó)標(biāo)碼在計(jì)算機(jī)上使用的時(shí)候,規(guī)定
漢字每個(gè)字節(jié)第一位設(shè)置為1,以表示該兩字節(jié)為漢字,稱為內(nèi)碼。以“大”字為例子:
國(guó)標(biāo)碼3473H: 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1
內(nèi)碼B4F3H: 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1
國(guó)標(biāo)碼與內(nèi)碼有一定的轉(zhuǎn)換公式,即16 進(jìn)制的區(qū)位碼,兩個(gè)字節(jié)各加80H,就成為了
國(guó)標(biāo)碼。
漢字字模在字庫中存放的位置根據(jù)漢字的區(qū)位碼來確定,內(nèi)碼是漢字在機(jī)內(nèi)的表示。由
于區(qū)位碼和內(nèi)碼存在固定的轉(zhuǎn)換關(guān)系,所以當(dāng)在支持漢字輸入的系統(tǒng)中,鍵盤輸入的漢字內(nèi)
碼即在程序中存在,將其轉(zhuǎn)換為區(qū)位碼,再?gòu)淖謳熘姓业綄?duì)應(yīng)的漢字字模,然后再用有關(guān)的
位操作和循環(huán)語句,對(duì)每個(gè)字節(jié)的每一位進(jìn)行判斷,如同過濾一樣,如果某位是1,則按設(shè)
置的顏色在屏幕的相應(yīng)位置畫點(diǎn)(用graphics.h 中的顯示象素點(diǎn)的函數(shù)putpixel()),若某位
為0,則不畫點(diǎn),這樣就可按預(yù)先設(shè)置的顏色在相應(yīng)位置顯示出該漢字來。
內(nèi)碼到區(qū)位碼的轉(zhuǎn)換
若漢字內(nèi)碼為十六進(jìn)制數(shù)h2h1l2l1,則區(qū)號(hào)qh 相位號(hào)wh 分別為:
qh= h2h1-0xa0;
wh= l2l1-0xa0;
若用十進(jìn)制表示內(nèi)碼為dld2,則
qh=dl-l60;
wh=d2-160;
即區(qū)位碼qw 為:
qw=100*(d1-160)十(d2-160);
反過來,若已經(jīng)知道了區(qū)位碼qw。則也可求得區(qū)號(hào)和位號(hào):
qh=qw/100;
wh=qw-100*qh;
因而該漢字在漢字庫中離起點(diǎn)的偏移位置(以字節(jié)為單位),可計(jì)算為:
offset=(94*(qh-1)+(wh-1))* 32;
注意:字庫中每1 區(qū)有94 個(gè)字符。
這樣,就可以找尋到文件的偏移量,讀出一個(gè)char bytes[32]數(shù)組。這樣bytes 數(shù)組中則
存了要顯示漢字的16×16 點(diǎn)陣字模,然后將字模按行掃描的辦法,通過循環(huán)用putpixel()函
數(shù)在屏幕設(shè)定位置顯示出象點(diǎn),因而組合成一個(gè)顯示的漢字。
樓主可以這樣想,C語言中,無論是常量,變量,函數(shù),只有先定義才能使用的。在函數(shù)定義時(shí),大腦要往一般的常量,變量定義的方向,切忌先不要想函數(shù)的別的。定義好后,把函數(shù)的定義先放一邊,不管它。
接著是函數(shù)聲明,大家都知道,C語言是有一個(gè)主函數(shù)main()和0或n個(gè)普通函數(shù)組成的。由于當(dāng)代碼越長(zhǎng),用到的函數(shù)就越多,為了減少函數(shù)的混淆,所以要有個(gè)函數(shù)名,就像老師點(diǎn)名一樣,聲明一個(gè)函數(shù),就如點(diǎn)一個(gè)學(xué)生的名字。
總之,函數(shù)定義是系統(tǒng)要求的,不定義就錯(cuò)誤,而函數(shù)聲明實(shí)際上不定義也行,但為了方便和減少錯(cuò)誤,人為規(guī)定要聲明。
分享名稱:描點(diǎn)函數(shù)功能c語言 描點(diǎn)法作函數(shù)圖像教案
瀏覽路徑:http://jinyejixie.com/article8/dopspip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站營(yíng)銷、網(wǎng)站制作、企業(yè)建站、網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)