當前位置:首頁 » 編程語言 » c語言如何讓計算機顯示圖形
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何讓計算機顯示圖形

發布時間: 2023-08-16 11:07:49

c語言圖形函數及應用 C語言輸出圖形

摘 要:圖形函數是C語言函數庫中的重要組成部分,利用圖形函數可以繪制出非常精美的圖形,該文介紹了常用C語言圖形函數並通過一個具體的實例介紹了如何利用圖形函數設計出完美、漂亮的圖形。
關鍵詞:C語言 圖形函數 應用

引言

C語言是國際上廣泛流行的很有發展前途的計算機高級語言。它既具有一般計算機高級語言的可讀性改睜、可移植性的特點,又具有低級語言能夠改皮對計算機硬體進行操作的特性,因此,它適合用於操作系統的描述語言,用C語言開發系統軟體和應用軟體。但在87ANSIC中並沒有規定C語言的圖形功能,許多C語言教材沒有介紹C語言的圖形功能,這給許多需要用C語言設計完美、漂亮的用戶界面的初學者帶來了困難[1-2]。本文旨在通過介紹Turbo C 2.0的主要圖形函數及一個具體的實例簡介這些函數的用法。

1 與圖形繪制有關的系統硬體[2-3]

要使計算機能夠繪制圖形,必須有一定的硬體基礎作為保障。圖形繪制的硬體基礎主要是顯示器和顯示卡。顯示器的工作方式一般有文本方式和圖形方式。要在屏幕上顯示圖形,必須將其設置成圖形方式。衡量顯示器的主核殲歲要性能指標是點距和解析度。目前顯示器常用的點距有0.39mm、0.31mm和0.28mm三種。高檔微機配置的彩色顯示器目前流行的是VGA檔次,它最低的解析度為640×480,中檔的是800×600,高檔的是1024×768。顯示器必須與顯示卡配套使用才能發揮其圖形功能。顯示卡所能支持的不同解析度的顯卡類型稱為顯示模式。下表給出Turbo C中常用的幾種顯示卡的圖形模式:


2 Turbo C 2.0中與繪圖有關的常用圖形函數

2.1 設置圖形工作方式的函數:initgraph()。
Turbo C繪圖,首先必須設置顯示器為圖形方式。該函數通過選定參數可確定顯卡的類型及圖形模式。
如:
int driver,mode;
driver=IBM8514;
mode=IBM8514HI;
initgraph(&driver,& mode,「c:\temp」);
將圖形方式設置為IBM8514類型,IBM8514HI圖形模式,1024×768的解析度,搜索路徑temp為C盤一級子目錄。
2.2 顏色控制函數setbkcolor(int color)及setcolor(int color)。
其中setbkcolor( )設置背景顏色,setcolor( )設置劃線顏色。
2.3 基本繪圖函數
A. line(int x1,int y1,int x2,int y2)
功能:從點(x1,y1)到點(x2,y2)畫一直線。
B. arc(int x,int y,int stange,int endangle,int r)
功能:以(x,y)為圓弧的中心,以stange為起始角度,以endangle為終止角度,以r為半徑作一圓弧。
C. setfillstyle(int pattern,int color)
功能:用參數pattern所確定的填充模式,用參數color確定的顏色進行填充。
D. floodfill(int x,int y,int color)
功能:填充一個含有點(x,y)在內的有界封閉區域,這個有界封閉區域的邊界由參數color確定,填充模式與填充顏色由函數setfillstyle設定。
2.4 字元輸出函數
A. settextstyle(int font,int direction,int size)
功能:在圖形方式下設置字元的字體,式樣和放大因子。
B. outtextxy(int x,int y,char &str)
功能:在窗口(x,y)的位置輸出字元或字元串。
C. getch( )
功能:從控制台取得一字元且不輸出,用來使程序暫停,按任意鍵後使程序繼續運行。

3. 繪制一個圓餅型統計圖的程序如下

#include
main( )
{ int driver,mode;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,「 」);
setbkcolor(0);
setcolor(15);
arc(320,240,0,360,180);
line(320,240,500,240);
line(320,240,443,112);
line(320,240,266,70);
line(320,240,200,374);
setfillstyle(4,2);
floodfill(340,230,15);
setfillstyle(5,9);
floodfill(340,180,15);
setfillstyle(7,4);
floodfill(300,240,15);
setfillstyle(8,3);
floodfill(340,280,15);
setcolor(14);
settextstyle(1,0,4);
outtextxy(410,180,「14%」);
settextstyle(1,0,4);
outtextxy(330,110,「16%」);
settextstyle(1,0,4);
outtextxy(200,200,「34%」);
settextstyle(1,0,4);
outtextxy(340,310,「36%」);}
上述程序在Turbo C 2.0中上機通過編譯、連接、運行,可得到精美的圓餅型圖。讀者通過閱讀並上機調試運行該程序可以對C語言的圖形設置、繪制;顏色的控制、填充等函數的應用有一個感性的認識,對復雜枯燥的C函數提高學習興趣。

結語
目前許多C語言教材很少介紹C語言的圖形功能,而許多C語言學習者對C語言的圖形功能很感興趣,為幫助初學者學習C語言繪圖函數並提高學習興趣,本文簡單介紹了C語言一些常用的繪圖函數及其應用,權當拋磚引玉!還有一些圖形函數沒有列出,讀者若有興趣可參閱《C語言函數大全》。

參考文獻:
[1]徐士良.PC機C圖形編程手冊.北京:清華大學出版社,1994.2.
[2]譚浩強.C程序設計(第二版)[M].北京:清華大學出版社,1999.
[3]MarkFinlay.C和C++圖形程序設計基礎.北京:龍門書局,1997.4.
[4]Herbert Schildt著.戴健鵬譯.C語言大全(第二版)[M].北京:電子工業出版社,1994.

Ⅱ c語言如何給自己寫的程序加上圖形界面

標題、背景和前景顏色、窗口大小等等這些可以用API函數實現

#include<windows.h>//加入頭文件就可調用API函數

intmain()

{

HWNDhWnd=GetForegroundWindow();

HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);

SetWindowText(hWnd,"測試");//標題

SetConsoleTextAttribute(handle,FOREGROUND_GREEN|BACKGROUND_BLUE);//前景、背景顏色

return0;

}

VC6.0 能夠在 XP 下很好的運行,無需進行額外的設置,但在 Win7、Win8 和 Win10 下,安裝完成後還要修改兼容模式才可以。解決方法如下:

一、對於Win7和Win10,需要將VC6.0的兼容模式修改為WindowsXP SP3:

1、在 VC6.0 的快捷方式或開始菜單上單擊滑鼠右鍵,選擇「屬性」。

Ⅲ C語言怎樣顯示一張圖片

1、如果有圖片(例如 wzzx.jpg) 程序中插一句:
system("mspaint wzzx.jpg"); 就可以 在運行時顯示這張圖片。
用字元串變數調用也可以:
char pic_name[80]="wzzx.jpg";
char cmd[100];
sprintf(cmd,"mspaint %s",pic_name);
system(cmd); // 顯示圖片

2、system函數:
原型:int system(const char * command);
功能:執行 dos(windows系統) 或 shell(Linux/Unix系統) 命令,參數字元串command為命令名;
說明:在windows系統中,system函數直接在控制台調用一個command命令。在Linux/Unix系統中,system函數會調用fork函數產生子進程,由子進程來執行command命令,命令執行完後隨即返回原調用的進程;
頭文件:stdlib.h;
返回值:命令執行成功返回0,執行失敗返回-1。

Ⅳ C語言中如何顯示圖片

1、圖片也是屬於文件類型的一種,圖片屬於二進制文件。使用fopen函數的二進制模式「rb」就可以打開。
2、常式:

#include<stdlib.h>
#include<stdio.h>
intmain()
{
FILE*fpPhoto,*fpText,*fpTarget;
intiRead;
charszBuf[100];
printf("請輸入第一個文件名(bmp): ");
gets(szBuf);
fpPhoto=fopen(szBuf,"rb");
printf("請輸入第二個文件名(txt): ");
gets(szBuf);
fpText=fopen(szBuf,"rb");
printf("請輸入目的文件名(bmp): ");
gets(szBuf);
fpTarget=fopen(szBuf,"wb");

if(!fpPhoto||!fpText||!fpTarget)
{
printf("打開文件失敗! ");
system("pause");
return-1;
}

while((iRead=fread(szBuf,1,sizeof(szBuf),fpPhoto))>0)
fwrite(szBuf,1,iRead,fpTarget);
while((iRead=fread(szBuf,1,sizeof(szBuf),fpText))>0)
fwrite(szBuf,1,iRead,fpTarget);

fclose(fpPhoto);
fclose(fpText);
fclose(fpTarget);
return0;
}

Ⅳ 用c語言編寫程序在屏幕顯示圖形

最簡單姿氏枝的方法,不像其他人那麼麻煩跡敏核李的


#include<stdio.h>
voidmain()
{
printf("* *** ***** *** *");
}



Ⅵ 怎樣用C語言顯示一張jpg的圖片呢

可以用函數OleLoadPicture從包含有圖像數據的流中裝載圖像。

具體實現代碼如下:

//在顯示圖像之前,首先要獲取到圖像文件的存放路徑,這里採用標準的文件打開對話框來選取圖像文件,文件名存放在CString型的變數m_sPath中:
CFileDialogdlg(TRUE,"jpg","*.jpg",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"JPEG文件(*.jpg)|*.jpg|GIF文件(*.gif)|*.gif||",NULL);
if(dlg.DoModal()==IDOK)
{
m_sPath=dlg.GetPathName();
Invalidate();
}
//為簡單計,圖形顯示的代碼直接在視類中的OnDraw中編寫,首先打開文件並判斷文件的可用性,並把文件內容放到流介面IStream的對象pStm中:
IStream*pStm;
CFileStatusfstatus;
CFilefile;
LONGcb;
……
if(file.Open(m_Path,CFile::modeRead)&&file.GetStatus(m_Path,fstatus)&&((cb=fstatus.m_size)!=-1))
{
HGLOBALhGlobal=GlobalAlloc(GMEM_MOVEABLE,cb);
LPVOIDpvData=NULL;
if(hGlobal!=NULL)
{
if((pvData=GlobalLock(hGlobal))!=NULL)
{
file.ReadHuge(pvData,cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
}
}
}


//然後,就直接調用OleLoadPicture函數從流中裝載圖像:
IPicture*pPic;
……
OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic));


//由於該函數有時會導致失敗,所以應當用SUCCEEDED宏來做一些適當的保護工作,只有在數據裝載成功的前提下才能繼續下面的圖像顯示工作:
if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{
OLE_XSIZE_HIMETRIChmWidth;
OLE_YSIZE_HIMETRIChmHeight;
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
doublefX,fY;
……
fX=(double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);
fY=(double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
AfxMessageBox("渲染圖像失敗!");
pPic->Release();
}
else
AfxMessageBox("從流中裝載圖像失敗!");//其中,顯示工作主要是由IPicture介面對象的Render函數來完成的,該函數主要用來將圖片的指定部分畫到指定的設備環境的指定位置。
原型如下:
HRESULTRender(HDChdc,//渲染圖像用的設備環境句柄
longx,//在hdc上的水平坐標
longy,//在hdc上的垂直坐標
longcx,//圖像寬度
longcy,//圖像高度
OLE_XPOS_HIMETRICxSrc,//在源圖像上的水平偏移
OLE_YPOS_HIMETRICySrc,//在源圖像上的垂直偏移
OLE_XSIZE_HIMETRICcxSrc,//在源圖像上水平拷貝的數量
OLE_YSIZE_HIMETRICcySrc,//在源圖像上垂直拷貝的數量
LPCRECTprcWBounds//指向目標圖元設備環境句柄的指針);

Ⅶ C語言中怎麼編程在計算機屏幕上顯示如下圖案

如果實在普通LCD屏上顯示某個圖案,需要先將待顯示的圖案用專用軟體處理成圖像數據,然後封裝到一個數組里,然後編寫一個子函數將這些數據按順序寫到LCD緩沖區中即可。
如果是在PC機的顯示器上顯示該圖案,需要首先根據該圖片的格式(如jpeg,或BMP,或其它格式),進行分析,去除圖片格式頭,然後將圖片文件中的圖像數據(即像素點)提取出來,然後寫入顯示器的緩存中即可。

Ⅷ 如何用C語言設計一個程序模擬有圖形界面的計算器

  • 首先,打開Vs 2010,如圖