關於Turbo C在圖形狀態下快速顯示彩色漢字的方法
在用Turbo C提供的圖形函數進行作圖時,爲了使屏幕顯示更加直觀明瞭,常常需要在圖形顯示的同時,顯示必要的漢字說明,Turbo C在圖形狀態下快速顯示彩色漢字的方法。這時Turbo C提供的一些函數就不能用了。
在漢字操作系統中,有一個16×16點陣的漢字庫,主要用於屏幕顯示。字庫中的漢字按16×16點陣模式存儲,即每個漢字相當於16×16=256個點組成。佔用16×2=32個連續的字節單元。字節的每一位(bit)表示一個點的屬性:1表示亮點,0表示暗點。連續的兩個字節表示該漢字字模的一行。32個字節的排列順序如圖:
@@T5S08100.GIF;圖1@@
計算機對西文字符采用一個字節表示,我國規定漢字用內碼(2個字節)表示。爲了保證中西文兼容,也就是說,漢字系統的內碼必須同時允許ASCII碼和漢字的同時使用,而兩者之間不能發生衝突。目前規定每個字節只用七位,若兩個字節的最高位均爲1,則該字符爲漢字。
國標對漢字庫的結構作了統一的規定:即將漢字庫分爲若干個區,每個區有94個漢字。
每一個漢字在字庫中有一個固定的區和位,即每一個漢字有一個區位碼。知道了區位碼也就相當於知道了漢字在字庫中的位置。由於漢字的內碼與區位碼有一定的關係,所以,只要通過內碼就可以得到區位碼,從而也就得到了漢字的字模。
設一個漢字的內碼爲ddff,則此漢字的區碼爲dd-161;位碼爲ff-161;該漢字字模的第一個字節在字庫中的位置是(94×區碼 位碼)×32。這時只要連續的讀出32個字節,就可以得到該漢字的字模。
有些文章和書籍採用寫點的方式來處理這32個字節。即某位爲1,則寫點,某位爲0,則不寫點。如果這樣處理,則每個漢字需循環256次,寫256個點,字數越多,則會顯得很慢。
Turbo C提供了這樣兩個函數:
setlinestyle(int linestyle,unsignedupattern,int thickness);
line(int x0,int y0,int x1,int y1);
setlinestyle函數爲設置線型函數,當linestyle取USERBIT-LINE且thickness取NORM-WIDTH時,其後的line函數就會按upattern的16位二進制數畫一點寬的線,計算機論文《Turbo C在圖形狀態下快速顯示彩色漢字的方法》。upattern的每一位代表一個象元,如果那位爲1,則該象元打開,否則該象元關閉。
我們在讀字模的時候可以一次讀2個字節,形成一個16位的'二進制數,把此二進制數設爲upattern,然後畫線。這樣只需循環16次就可寫完一個漢字。速度得到很大的提高。尤其在字數較多時,更體現出此方法的優勢。
以下爲用畫線的方法在西文狀態下顯示漢字的函數,在Turbo C 1.0、DOS6.0、兼容386機上運行通過。
#include
#include
#include
FILE *stream; //設 stream爲全程變量//
void open-file
{//打開漢字庫函數,使用的漢字庫爲UCDOS的16點陣字庫:HZK16//
if((stream=fopen("hzk16","rb"))==NULL)
{ printf("Can't Open File HZK16"); exit(1);}
}
void close-file
{//關閉漢字庫函數//
fclose(stream); return;
}
void write16(unsigned char *word,int x,int y,int wd,int col)
{//word爲所要顯示的漢字串,x,y爲要顯示漢字的起始座標,wd爲兩個漢字//
//之間的間隔,col爲要顯示漢字的顏色.//
register int k,i;
unsigned char cw[33];
char c[2];
unsigned long int qu-ma,wei-ma;
setcolor(col);settextstyle(0,HORIZ-DIR,1);
for(k=0;word[k]!='/0';k =2)
-
多媒體工作計劃九篇
時光在流逝,從不停歇,我們的工作同時也在不斷更新迭代中,現在就讓我們好好地規劃一下吧。好的計劃是什麼樣的呢?下面是小編爲大家收集的多媒體工作計劃9篇,歡迎閱讀與收藏。多媒體工作計劃篇1一、制定制度,加強管理①本學期管理多媒體教室以後,結合學校的《多媒體教室...
-
多媒體語文教學總結(9篇)
總結是指社會團體、企業單位和個人在自身的某一時期、某一項目或某些工作告一段落或者全部完成後進行回顧檢查、分析評價,從而肯定成績,得到經驗,找出差距,得出教訓和一些規律性認識的一種書面材料,它可以促使我們思考,不妨讓我們認真地完成總結吧。總結怎麼寫才能發...
-
多媒體教學總結
總結是事後對某一階段的學習或工作情況作加以回顧檢查並分析評價的書面材料,它能夠使頭腦更加清醒,目標更加明確,讓我們好好寫一份總結吧。你想知道總結怎麼寫嗎?以下是小編精心整理的多媒體教學總結,僅供參考,大家一起來看看吧。多媒體教學總結1隨着科學技術的飛速...
-
多媒體工作計劃合集六篇
時間過得真快,總在不經意間流逝,我們的工作又將在忙碌中充實着,在喜悅中收穫着,此時此刻需要爲接下來的工作做一個詳細的計劃了。什麼樣的計劃纔是有效的呢?以下是小編爲大家整理的多媒體工作計劃6篇,希望能夠幫助到大家。多媒體工作計劃篇1本學期,本人繼續擔任了學校...
相關文章
- culture是什麼意思 civilization+culture含義區別用法
- 解析cpu power limit control 主機BOIS裏的配置經驗
- ROOT大師演示 ROOT 華爲 C8812(圖+文)
- win10系統第一次打開acrobat不顯示菜單欄和工具欄解決方法
- 會計中的cost centre/ cost unit/ cost driver三者如何分?
- three cube roots of unity該如何理解?
- correct是什麼意思 correct變形-短語-辨析-講解視頻
- 在Word裏面運用AutoCAD圖形
- 如何在Word2003中用像素方式顯示圖形圖片大小
- doubt是什麼意思 doubt中文意思-時態變形-搭配-例句