C語(yǔ)言函數(shù)圖像男動(dòng)漫傷感 怎么用c語(yǔ)言寫函數(shù)圖像

怎樣用C語(yǔ)言畫一個(gè)函數(shù)的圖像啊

和數(shù)學(xué)上一樣啊 來(lái)個(gè)坐標(biāo)x,y 分別表示列和行 。在函數(shù)上就打印一個(gè)* 給個(gè)范圍,雙層循環(huán)加條件就可以了

創(chuàng)新互聯(lián)主營(yíng)諸暨網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,諸暨h(yuǎn)5微信小程序開發(fā)搭建,諸暨網(wǎng)站營(yíng)銷推廣歡迎諸暨等地區(qū)企業(yè)咨詢

如何用c語(yǔ)言繪函數(shù)圖象

你要什么圖像 sin 還cos 要不我都給你把!

1、#includestdio.h

#includemath.h

void main()

{

double y;

int i,n;

for(y=1;y=0;y-=0.1)

{n=asin(y)*10;

for(i=1;i=n;i++)

printf(" ");

printf("*");

for(;i=31-n;i++)

printf(" ");

printf("*\n");}

for(y=0;y=1;y+=0.1)

{n=asin(y)*10;

for(i=-1;i=31+n;i++)

printf(" ");

printf("*");

for(;i=62-n;i++)

printf(" ");

printf("*\n");}

}

2、#includestdio.h

#includemath.h

void main()

{

double y;

int x,m;

for(y=1;y=-1;y-=0.1)

{m=acos(y)*10;

for(x=1;xm;x++)

printf(" ");

printf("*");

for(;x62-m;x++)

printf(" ");

printf("*\n");}

}

之后在給你個(gè)連個(gè)圖像相交的把

3、#includestdio.h

#includemath.h

void main()

{

double y;

int n,m,i,j,x,yy;

for(yy=0;yy=20;yy++)

{ y=0.1*yy;

m=acos(1-y)*10;

n=asin(1-y)*10;

i=32+asin(y-1)*10;

j=61-asin(y-1)*10;

for(x=0;x62;x++)

{if((x==n)(x==m)) printf("+");

else if((x==n)||(x==i)||(x==j)) printf("+");

else if((x==m)||(x==62-m)) printf("*");

else printf(" ");}

printf("\n");

}

}

c語(yǔ)言動(dòng)畫函數(shù)

建議看下高級(jí)編程技術(shù)這本書

目錄如下:

1 文本的屏幕輸出和鍵盤輸入

1.1 文本的屏幕輸出

1.2 鍵盤輸入

1.3 問(wèn)題實(shí)現(xiàn)

1.4 高級(jí)應(yīng)用——菜單實(shí)現(xiàn)

實(shí)驗(yàn)一

2 圖形顯示方式和鼠標(biāo)輸入

2.1 圖形顯示

2.2 鼠標(biāo)的使用

2.3 問(wèn)題實(shí)現(xiàn)

實(shí)驗(yàn)二

3 屏幕圖象與動(dòng)畫技術(shù)

3.1 一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方法

3.2 利用動(dòng)態(tài)開辟圖視口的方法

3.3 利用屏幕圖象存儲(chǔ)再放的方法

3.4 利用頁(yè)交替的方法

3.5 問(wèn)題實(shí)現(xiàn)

實(shí)驗(yàn)三

4 中斷技術(shù)

4.1 編寫自己的中斷程序

4.2 問(wèn)題實(shí)現(xiàn)

4.3 其它應(yīng)用——硬中斷演示秒表程序

實(shí)驗(yàn)四

5 發(fā)聲技術(shù)

5.1 聲音函數(shù)

5.2 計(jì)算機(jī)樂(lè)譜

5.3 問(wèn)題實(shí)現(xiàn)

實(shí)驗(yàn)五

6 漢字顯示技術(shù)

6.1 漢字編碼

6.2 問(wèn)題實(shí)現(xiàn)

實(shí)驗(yàn)六

如何利用C語(yǔ)言實(shí)現(xiàn)動(dòng)畫?

基于擦除法的C語(yǔ)言動(dòng)畫設(shè)計(jì)與實(shí)現(xiàn)

Movie design implement in C language base on erasure way

 東華理工學(xué)院計(jì)算機(jī)與通信系 姜林 何月順 江西 南昌 330013

摘要:

 本文介紹了程序設(shè)計(jì)語(yǔ)言中動(dòng)畫設(shè)計(jì)的原理,在C語(yǔ)言中的動(dòng)畫設(shè)計(jì)常用方法,并提出了在C語(yǔ)言中新的動(dòng)畫設(shè)計(jì)方法――擦除法。闡述擦除法動(dòng)畫設(shè)計(jì)的原理,并通過(guò)一個(gè)具體的實(shí)例詳細(xì)介紹了這種方法的設(shè)計(jì)實(shí)現(xiàn),文中末尾總結(jié)了擦除法動(dòng)畫設(shè)計(jì)的優(yōu)點(diǎn)及適用的范圍。

關(guān)鍵字:擦除法;C語(yǔ)言;TurboC2.0;動(dòng)畫設(shè)計(jì);原理;實(shí)現(xiàn) 

中圖分類號(hào):TP312

Summary:

Through the principium of movie design in program design language, the thesis present movie design general way in C language, and bring forward new movie design way――erasure . The thesis also expatiate the principium of erasure way, particular describe the design implement of erasure by a instance. The end summarize the excellence and range of erasure way.

Key words: erasure way; C language ; TurboC 2.0; movie design; principium; implement

0. 引言

動(dòng)畫技術(shù)是計(jì)算機(jī)圖形學(xué)中的重要內(nèi)容,它廣泛用于游戲娛樂(lè),輔助教學(xué),科學(xué)實(shí)驗(yàn)?zāi)M等計(jì)算機(jī)輔助設(shè)計(jì)。用于動(dòng)畫設(shè)計(jì)的程序設(shè)計(jì)語(yǔ)言有多種,并且有多種方法。其中C語(yǔ)言程序設(shè)計(jì)又廣泛用于各種軟件開發(fā)項(xiàng)目中。因此,掌握C語(yǔ)言的動(dòng)畫設(shè)計(jì)方法對(duì)于軟件開發(fā)很有必要。

1. 程序設(shè)計(jì)中動(dòng)畫原理

程序設(shè)計(jì)中動(dòng)畫設(shè)計(jì)的原理類似電影的方法,它利用人的視覺(jué)具有暫留的生理特點(diǎn),即人眼對(duì)動(dòng)態(tài)圖像的變化僅能分辨出時(shí)間間隔為25毫秒左右的變化,如果圖像變化太快,則人眼無(wú)法分辨。在程序設(shè)計(jì)中我們可以在屏幕上畫出一張圖像,而將這張圖像在不同時(shí)間出現(xiàn),然后一張張快速(時(shí)間間隔小于25毫秒)呈現(xiàn)在屏幕上,從視覺(jué)效果上看這些畫面就如同電影在連續(xù)變化一樣,給人以動(dòng)的視覺(jué)感覺(jué)。

2. C語(yǔ)言動(dòng)畫設(shè)計(jì)常用方法

 

C語(yǔ)言常用動(dòng)畫設(shè)計(jì)方法[1]:

2.1 利用動(dòng)態(tài)開辟圖視口方法

在位置動(dòng)態(tài)變化,但大小不變的圖視口中(用setviewpot()函數(shù)[2]),設(shè)置固定圖形,這樣呈現(xiàn)在觀察者面前的是當(dāng)前圖視口位置在動(dòng)態(tài)變化,因而在屏上看到的圖像就好像在動(dòng)態(tài)變化一樣。

2.2 利用顯示頁(yè)和編輯頁(yè)交替變化

將當(dāng)前顯示頁(yè)和編輯頁(yè)分開(用setvisualpage()和setactivepage()函數(shù)),在編輯頁(yè)上

畫好圖形后,立即令該頁(yè)變?yōu)轱@示頁(yè),然后在上次顯示頁(yè)上進(jìn)行畫圖,畫好后,再交換,如此反復(fù),在觀察者的視覺(jué)上,就出現(xiàn)了動(dòng)畫的效果。

2.3 利用畫面存儲(chǔ)再重放的方法

如同制作幻燈片一樣,將整個(gè)動(dòng)畫過(guò)程變成一個(gè)個(gè)片斷,然后存儲(chǔ)到顯示緩沖區(qū)內(nèi),當(dāng)把它們按順序重放到屏幕上時(shí),就出現(xiàn)了動(dòng)畫效果。

2.4 直接對(duì)圖像動(dòng)態(tài)存儲(chǔ)器進(jìn)行操作

利用顯示適配器上控制圖像顯示的各種寄存器和圖像存儲(chǔ)器VRAM,對(duì)其進(jìn)行直接操作和控制,從而可以高效快速的實(shí)現(xiàn)動(dòng)畫效果。

 上述4種方法均可以實(shí)現(xiàn)動(dòng)畫效果,但其操作比較復(fù)雜,且在程序中要對(duì)圖像不斷進(jìn)行存取操作,這需要耗費(fèi)大量?jī)?nèi)存資源。下面的擦除法動(dòng)畫設(shè)計(jì)可以解決上述問(wèn)題。

3. 擦除法動(dòng)畫設(shè)計(jì)原理

擦除法動(dòng)畫設(shè)計(jì)方法在很多的動(dòng)畫制作工具(如flash)中大量使用,但在程序設(shè)計(jì)中卻鮮有人用。它的設(shè)計(jì)原理是:利用同色原理,當(dāng)圖形色與背景色相同時(shí)人眼不能感知。在動(dòng)畫設(shè)計(jì)中,當(dāng)在一個(gè)位置畫了一張圖像時(shí),使圖像色與背景色相異,然后再到另一個(gè)位置畫一張圖像并使圖像色與背景色也相異,此時(shí)將先前畫的圖像在原位置再畫一張,并使圖像色與背景色相同,這樣人眼只能看到新畫的一張圖像而看不到先前畫的圖像,從而先前畫的圖像感覺(jué)被擦除了。這樣連續(xù)畫多張圖像并在每畫一張新的圖像,將原來(lái)的圖像擦除,從而在觀察者來(lái)看就實(shí)現(xiàn)了動(dòng)畫的效果。

4. 擦除法的動(dòng)畫設(shè)計(jì)實(shí)現(xiàn)

下面以一個(gè)上下翻滾的圓作為一個(gè)例子來(lái)講解在TurboC2.0開發(fā)環(huán)境下用C語(yǔ)言來(lái)實(shí)現(xiàn)動(dòng)畫的設(shè)計(jì)過(guò)程,其中動(dòng)畫設(shè)計(jì)的方法是擦除法。具體的實(shí)現(xiàn)步驟如下:

4.1 TC的圖形系統(tǒng)的初始化

TurboC2.0為用戶提供了一個(gè)功能強(qiáng)大的畫圖軟件庫(kù),它包括圖形庫(kù)文件(graphics.lib),圖形頭文件(graphics.h)和許多圖形顯示器的驅(qū)動(dòng)程序。在TurboC2.0開始進(jìn)行圖形設(shè)計(jì)前必須對(duì)之進(jìn)行初始化,使系統(tǒng)知道要用什么類型的圖形顯示器的驅(qū)動(dòng)程序,采用什么模式的圖形方式,以及該適配器驅(qū)動(dòng)程序的尋找路徑名。這個(gè)初始化的函數(shù)是initgraph()。在本程序中的初始化如下:

gdriver=DETECT;

initgraph(gdriver, gmode, "");//圖形顯示器、顯示模式、路徑自動(dòng)檢測(cè)

4.2 畫圖

setcolor(LIGHTRED);//設(shè)置圓的線條顏色為淡紅色

setlinestyle(0,0,1);//設(shè)置線條為形狀為實(shí)線,線寬為一點(diǎn)寬

setfillstyle(1, 10);//設(shè)置圓的填充式樣為以實(shí)填充,填充色為淡綠色

circle(300, 10+10*y,15);//畫一個(gè)圓心在坐標(biāo)(300,10+10y),半徑為15的圓

這個(gè)地方我們需要畫一個(gè)圓(用draw()函數(shù)實(shí)現(xiàn)),并且設(shè)置圓的圓周線條的顏色(用setcolor()函數(shù)),設(shè)置線條類型(用setlinestyle()函數(shù)),設(shè)置圓的填充色和填充模式(用setfillstyle()函數(shù)),設(shè)置圓的填充色(用floodfill()),最后是畫圓(用circle()函數(shù))。在本程序(draw()函數(shù))中的代碼如下:

floodfill(300, 10+10*y, 12);//給圓填充如上stfillstyle中的淡綠色

為了實(shí)現(xiàn)擦除操作需在同一個(gè)位置再畫一個(gè)圓(用clear()函數(shù)實(shí)現(xiàn)),該操作只需將上面的畫圓函數(shù)(draw()函數(shù))改動(dòng)兩個(gè)設(shè)置即可,如下示:

setcolor(BLUE);//設(shè)置圓的線條顏色為藍(lán)色(與背景色相同)

setfillstyle(1, 10);//設(shè)置圓的填充式樣為以實(shí)填充,填充色為淡綠色

4.3 動(dòng)畫實(shí)現(xiàn)

本部分是核心部分,先設(shè)置背景色為藍(lán)色(用setbkcolor()函數(shù)),再在屏幕上畫一個(gè)填充色為淡綠色的圓(draw()函數(shù))。設(shè)置一個(gè)循環(huán)控制語(yǔ)句實(shí)現(xiàn)在屏幕上不同的位置畫圓,同時(shí)在每畫一個(gè)圓后作一個(gè)時(shí)間的延遲(用delay()函數(shù)),再在延遲后實(shí)現(xiàn)擦除操作,即調(diào)用clear()函數(shù)。其流程圖及代碼如下:

setbkcolor(BLUE);//設(shè)置背景色為藍(lán)色

for(j=20;j0;j=j-4)//控制動(dòng)畫實(shí)現(xiàn)的次數(shù)為20次

{ for(i=j;i30;i++)//實(shí)現(xiàn)動(dòng)畫從上向下閃爍

{ draw(i);//畫圓

delay(100000);//延遲0.1秒

clear(i);//擦除已畫的圓

}

for(i=30;ij;i--)//實(shí)現(xiàn)動(dòng)畫從下向上閃爍

{ draw(i);//畫圓

delay(100000);//延遲0.1秒

clear(i);//擦除已畫的圓

}

}

動(dòng)畫實(shí)現(xiàn)后的最后效果圖如下示。

4.4 關(guān)閉圖形系統(tǒng)

當(dāng)圖形實(shí)現(xiàn)結(jié)束后需要關(guān)閉圖形系統(tǒng),利用函數(shù)closegraph()即可實(shí)現(xiàn)。

5. 總結(jié)

 擦除法動(dòng)畫設(shè)計(jì)原理易于理解,便于操作。并且它的程序運(yùn)行所需內(nèi)存空間也比上述四種常用方法要少得多,因?yàn)樗诔绦驁?zhí)行過(guò)程中不需將圖形存入內(nèi)存再?gòu)膬?nèi)存調(diào)出,這節(jié)省了大量的內(nèi)存空間。如果程序運(yùn)行在內(nèi)存緊張的環(huán)境中,如嵌入式系統(tǒng)中,這種方法尤其適用

如何用c語(yǔ)言畫函數(shù)圖像

用GDI繪圖吧,比較簡(jiǎn)單。繪圖的思想是讓x以固定的值在區(qū)間內(nèi)持續(xù)增長(zhǎng),比如x=0.1,0.2,0.3.....,以計(jì)算出的y值來(lái)確定y坐標(biāo)。用線連接所有的點(diǎn)就行了。MoveTo(),LineTo()函數(shù)你用得著,具體情況請(qǐng)自行查看MSDN。

網(wǎng)頁(yè)名稱:C語(yǔ)言函數(shù)圖像男動(dòng)漫傷感 怎么用c語(yǔ)言寫函數(shù)圖像
路徑分享:http://muchs.cn/article24/docoeje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、ChatGPT、手機(jī)網(wǎng)站建設(shè)、軟件開發(fā)、品牌網(wǎng)站建設(shè)、域名注冊(cè)

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)