當前位置:首頁 » 編程軟體 » c圖形編程pdf

c圖形編程pdf

發布時間: 2022-04-13 13:27:48

1. visual c++ 實踐與提高—圖形圖像編程

查看記錄 4 of 9 自目錄 title "visual c++ 實踐與提高" .
跳到館藏位置和借閱信息
標記此記錄列印/抓取 TP312/1396f
Visual C++實踐與提高 圖形圖像編程篇 李於劍編著
李於劍 編著
記錄版本標識: 20011009105503.5 ISBN: 7-113-04044-6 CNY51.00 (含光碟) ISBN: 7-980046-64-1 光碟 題名與責任者: Visual C++實踐與提高 圖形圖像編程篇 李於劍編著 出版發行項: 北京 中國鐵道出版社 2001 載體形態: 486頁 圖 26cm 光碟1片 叢編說明: 計算機編程與提高系列 圖書館: 北大中心館 其它變異題名: 圖形圖像編程篇 學科名稱主題: c語言 程序設計 學科名稱主題: 程序設計 C語言 中圖圖書分類法類號: TP312 個人名稱—等同責任者: 李於劍 編著
復本號館藏類型館藏位置索書號 屬於: 北大中心館 1)TP312/1396f 1中文圖書自然科學區 2中文圖書在上架中3中文圖書自然科學區 看來北京大學圖書館有。到那裡借就行。有書就一定有光碟

2. c語言圖形編程

如果只是用標准庫的話,會很累。
要在windows下寫的話,必須還是要看windows platform sdk。用win api來寫。不過老實說,也很累。至少弄清楚win32 gui就要一段時間。

3. C語言圖形編程書籍推薦

自學的話,建議你看看譚浩強的,他的書簡單易懂,都比較不錯的

4. 高手進:如何在WINDOWS下用C語言編寫圖形函數

1、圖形編程都是用的純C函數庫,
比如Windows的GDI,還有DirectX,以及開源的OpenGL。這些都是純C庫,也就是說會C語言就能開發圖形界面和游戲了。C++當然也可以調用這些函數庫,但不是必要的。
2、學GDI的話最好的書是《Windows程序設計.chm》這個文檔,這東西網上到處都有。
學OpenGL的話,有個網站Nehe有完整的教學。人翻譯了這個教程的中文版,google
「Nehe
opengl」
就能找到了。

5. c語言圖形編程的教程書

C語言程序設計實例精粹(附光碟)

本書內容全面,覆蓋了數值計算、字元處理、圖形繪制、動畫實現、圖像處理、視景游戲、粒子造型、電子音效,以及數據結構與通用演算法等眾多應用領域;實例豐富,精選108個實例,分為9大應用范疇,每個實例對應一個專題,集中體現了語言、演算法、模型或應用形式等諸多編程知識與技能。
本書兼具了趣味性、知識性、人文性、實用性等特點。它首先會對C語言與演算法等程序設計內容的學習與實踐大有裨益,同時對提高人文素養也有幫助。本書可以作為C語言初學者、軟體開發人員,包括游戲設計人員等學習與借鑒之用,同時可以作為對演算法設計感興趣的讀者的參考書籍。

----------------------
很不錯,正在看。。

6. 介紹幾本c語言圖形編程入門書籍

《C語言編程寶典》
《21天學通c(第三版)》
《C Primer Plus中文版》
《你必須知道的495個C語言問題 》
《C和指針》
《C陷阱與缺陷》
《C語言程序設計》
《C Primer Plus 》

7. 如何用C語言編寫有圖形動畫類的程序

C做圖形很不好使,效果也次。建議用turbo c , 它有個graphic.h 頭文件 ,聲明了很多圖形函數,可以直接用,具體用法查資料慢慢看吧。 我給你一個常式吧(用turbo c 編譯) :

#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define N 200
int i,key;
int score=0;/*得分*/
int gamespeed=50000;/*游戲速度自己調整*/
struct Food
{
int x;/*食物的橫坐標*/
int y;/*食物的縱坐標*/
int yes;/*判斷是否要出現食物的變數*/
}food;/*食物的結構體*/
struct Snake
{
int x[N];
int y[N];
int node;/*蛇的節數*/
int direction;/*蛇移動方向*/
int life;/* 蛇的生命,0活著,1死亡*/
}snake;
void Init(void);/*圖形驅動*/
void Close(void);/*圖形結束*/
void DrawK(void);/*開始畫面*/
void GameOver(void);/*結束游戲*/
void GamePlay(void);/*玩游戲具體過程*/
void PrScore(void);/*輸出成績*/
/*主函數*/
void main(void)
{
Init();/*圖形驅動*/
DrawK();/*開始畫面*/
GamePlay();/*玩游戲具體過程*/
Close();/*圖形結束*/
}
/*圖形驅動*/
void Init(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc");
cleardevice();
}
/*開始畫面,左上角坐標為(50,40),右下角坐標為(610,460)的圍牆*/
void DrawK(void)
{
/*setbkcolor(LIGHTGREEN);*/
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設置線型*/
for(i=50;i<=600;i+=10)/*畫圍牆*/
{
rectangle(i,40,i+10,49); /*上邊*/
rectangle(i,451,i+10,460);/*下邊*/
}
for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10); /*左邊*/
rectangle(601,i,610,i+10);/*右邊*/
}
}
/*玩游戲具體過程*/
void GamePlay(void)
{
randomize();/*隨機數發生器*/
food.yes=1;/*1表示需要出現新食物,0表示已經存在食物*/
snake.life=0;/*活著*/
snake.direction=1;/*方嚮往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇頭*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*節數*/
PrScore();/*輸出得分*/
while(1)/*可以重復玩游戲,壓ESC鍵結束*/
{
while(!kbhit())/*在沒有按鍵的情況下,蛇自己移動身體*/
{
if(food.yes==1)/*需要出現新食物*/
{
food.x=rand()%400+60;
food.y=rand()%350+60;

while(food.x%10!=0)/*食物隨機出現後必須讓食物能夠在整格內,這樣才可以讓蛇吃到*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*畫面上有食物了*/
}
if(food.yes==0)/*畫面上有食物了就要顯示*/
{
setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10);
}

for(i=snake.node-1;i>0;i--)/*蛇的每個環節往前移動,也就是貪吃蛇的關鍵演算法*/
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
/*1,2,3,4表示右,左,上,下四個方向,通過這個判斷來移動蛇頭*/
switch(snake.direction)
{
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break;
}

for(i=3;i<snake.node;i++)/*從蛇的第四節開始判斷是否撞到自己了,因為蛇頭為兩節,第三節不可能拐過來*/
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver();/*顯示失敗*/
snake.life=1;
break;
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到牆壁*/
{
GameOver();/*本次游戲結束*/
snake.life=1; /*蛇死*/
}
if(snake.life==1)/*以上兩種判斷以後,如果蛇死就跳出內循環,重新開始*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以後*/
{
setcolor(0);/*把畫面上的食物東西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;snake.y[snake.node]=-20;
/*新的一節先放在看不見的位置,下次循環就取前一節的位置*/
snake.node++;/*蛇的身體長一節*/
food.yes=1;/*畫面上需要出現新的食物*/
score+=10;
PrScore();/*輸出新得分*/
}
setcolor(4);/*畫出蛇*/
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
snake.y[i]-10);
delay(gamespeed);
setcolor(0);/*用黑色去除蛇的的最後一節*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
} /*endwhile(!kbhit)*/
if(snake.life==1)/*如果蛇死就跳出循環*/
break;
key=bioskey(0);/*接收按鍵*/
if(key==ESC)/*按ESC鍵退出*/
break;
else
if(key==UP&&snake.direction!=4)
/*判斷是否往相反的方向移動*/
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}/*endwhile(1)*/
}
/*游戲結束*/
void GameOver(void)
{
cleardevice();
PrScore();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();
}
/*輸出成績*/
void PrScore(void)
{
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);
}
/*圖形結束*/
void Close(void)
{
getch();
closegraph();
}

8. c語言圖形程序設計

C語言圖形編製程序
資源大小: 3.20MB
下載地址:
http://download.csdn.net/source/252335

9. C 圖形界面編程

1、圖形編程都是用的純C函數庫, 比如Windows的GDI,還有DirectX,以及開源的OpenGL。這些都是純C庫,也就是說會C語言就能開發圖形界面和游戲了。C++當然也可以調用這些函數庫,但不是必要的。
2、學GDI的話最好的書是《Windows程序設計.chm》這個文檔,這東西網上到處都有。學OpenGL的話,有個網站Nehe有完整的教學。人翻譯了這個教程的中文版,google 「Nehe opengl」 就能找到了。

10. c語言計算機圖形編程的程序求各種實例(並說明一下啊)謝謝謝!!

1》DDA法畫直線的例子:void CMyView::OnDdaline()
{
CDC* pDC=GetDC();//獲得設備指針
int xa=100, ya=300, xb=300, yb=200,c=RGB(0,255,0);//定義直線的兩端點,直線顏色
int x,y;
float dx, dy, k;
dx=(float)(xb-xa), dy=(float)(yb-ya);
k=dy/dx, y=ya;
if(abs(k)<1)
{
for (x=xa;x<=xb;x++)
{pDC->SetPixel (x,int(y+0.5),c); <br> y=y+k;}
}
if(abs(k)>=1)
{
for (y=ya;y<=yb;y++)
{pDC->SetPixel (int(x+0.5),y,c); <br> x=x+1/k;}
}
ReleaseDC(pDC);
}
void CMyView::OnBresenhamline()
{
CDC* pDC=GetDC();
int x,y,i,e,dx,dy,t;
int x1=100,y1=200,x2=350,y2=100,c=RGB(0,0,255);
dx=abs(x2-x1),dy=abs(y2-y1),e=2*dy-dx;
x=x1,y=y2;
if(dx>dy)
{
for(i=0;i<=dx;i++)
{
pDC->SetPixel(x,y,c);
x++;
if(e>=0)
{y++;<br> e=e+2*dy-2*dx;}else e=e+dy;
}
}
else
{
t=dx;
dx=dy;
dy=t;
for(i=0;i<=dx;i++)
{
pDC->SetPixel(x,y,c);
x++;
if(e>=0)
{y++;<br> e=e+2*dy-2*dx;}else e=e+dy;
}
}
}2》中心畫圓法 做園 void CMyView::OnMidpointcircle()
{ CDC* pDC=GetDC();
int xc=100,int yc=200,float R=50,float alpha=1;
int i;
float sinalpha,cosalpha,xi,yi,xii,yii,steps;
sinalpha=sin(pi*alpha);
cosalpha=cos(pi*alpha);
xi=xc+R;
yi=yc;
steps=360;

for(i=0;i<steps;i++)//每隔45°確定一個園上的點。
{
xii=xc+(xi-xc)*cosalpha-(yi-yc)*sinalpha;//確定第一點xii,yii.其與圓心的連線和 xi,yi與圓心的連線夾角45°
yii=yc+(xi-xc)*sinalpha+(yi-yc)*cosalpha;
pDC->MoveTo(xi,yi);
pDC->LineTo(xii,yii);
xi=xii;
yi=yii;
}
}3》 bresenham法畫圓void CMyView::OnBresenhamcircle()
{
// TODO: Add your command handler code here
CDC* pDC=GetDC();
int xc=300, yc=300, r=40, c=RGB(0,0,255);
int x,y,p; x=0,y=r,p=3-2*r;
while(x<y)
{
pDC->SetPixel(xc+x, yc+y, c);
pDC->SetPixel(xc-x, yc+y, c);
pDC->SetPixel(xc+x, yc-y, c);
pDC->SetPixel(xc-x, yc-y, c);
pDC->SetPixel(xc+y, yc+x, c);
pDC->SetPixel(xc-y, yc+x, c);
pDC->SetPixel(xc+y, yc-x, c);
pDC->SetPixel(xc-y, yc-x, c);
if (p<0)
p=p+4*x+6;
else
{
p=p+4*(x-y)+10;
y-=1;
}
x+=1;
}
if(x==y)
pDC->SetPixel(xc+x, yc+y, c);
pDC->SetPixel(xc-x, yc+y, c);
pDC->SetPixel(xc+x, yc-y, c);
pDC->SetPixel(xc-x, yc-y, c);
pDC->SetPixel(xc+y, yc+x, c);
pDC->SetPixel(xc-y, yc+x, c);
pDC->SetPixel(xc+y, yc-x, c);
pDC->SetPixel(xc-y, yc-x, c);
ReleaseDC(pDC);
}與圖形相關的還有很多很多,掃描線填充法,種子填充法 等等想要真正了解的話 推薦一本書!《計算機圖形學》以上程序只能說明引用方法,畢竟很對關於以上程序的東西 都在自己做的頭文件里。

熱點內容
編譯程序實現的途徑 發布:2025-03-16 00:17:07 瀏覽:559
app編程入門 發布:2025-03-16 00:04:20 瀏覽:194
插接式資料庫 發布:2025-03-15 23:52:59 瀏覽:67
安卓從哪裡設置後攝像頭鏡像 發布:2025-03-15 23:51:27 瀏覽:974
伺服器電腦超頻教程 發布:2025-03-15 23:50:48 瀏覽:978
蘋果手機如何找回appid密碼 發布:2025-03-15 23:48:36 瀏覽:407
汽車頂部黑色是什麼配置 發布:2025-03-15 23:40:15 瀏覽:562
校考上傳照片 發布:2025-03-15 23:30:02 瀏覽:851
windowsxp伺服器搭建ftp 發布:2025-03-15 23:17:52 瀏覽:313
2014年資料庫工程師 發布:2025-03-15 23:07:42 瀏覽:246