版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Computer Graphics Report Of course experiment 信息與計(jì)算科學(xué)專業(yè)基礎(chǔ)課計(jì)算機(jī)圖形學(xué)課程實(shí)驗(yàn) 報(bào) 告實(shí)驗(yàn)題目班 級(jí)姓 名學(xué) 號(hào)指導(dǎo)教師日 期理學(xué)院應(yīng)用數(shù)學(xué)系利用C語(yǔ)言圖形函數(shù)繪圖實(shí)驗(yàn)1實(shí)驗(yàn)說(shuō)明試驗(yàn)?zāi)康模?掌握TurboC語(yǔ)言圖形函數(shù)的使用和學(xué)會(huì)繪制一般圖形。試驗(yàn)地點(diǎn): 教九樓401 數(shù)學(xué)系機(jī)房實(shí)驗(yàn)要求(Direction):1. 每個(gè)學(xué)生單獨(dú)完成;2.開發(fā)語(yǔ)言為TurboC或C+,也可使用其它語(yǔ)言;3.請(qǐng)?jiān)谧约旱膶?shí)驗(yàn)報(bào)告上寫明姓名、學(xué)號(hào)、班級(jí);4.每次交的實(shí)驗(yàn)報(bào)告內(nèi)容包括:題目、試驗(yàn)?zāi)康暮鸵饬x、程序制作步驟、主程序、運(yùn)行結(jié)果圖以及參考文件;5. 自己
2、保留一份可執(zhí)行程序,考試前統(tǒng)一檢查和上交。實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)題一1.1實(shí)驗(yàn)題目用如下圖1所示,圖中最大正n邊形的外接圓半徑為R,旋轉(zhuǎn)該正n邊形,每次旋轉(zhuǎn)角度,旋轉(zhuǎn)后的的n邊形頂點(diǎn)落在前一個(gè)正六邊形的邊上,共旋轉(zhuǎn)N次,請(qǐng)上機(jī)編程繪制N+1個(gè)外接圓半徑逐漸縮小且旋轉(zhuǎn)的正n邊形。要求:(1) n、R、N、要求可以人為自由控制輸入;(2)N+1個(gè)正六邊形的中心(即外接圓的圓心)在顯示屏幕中心。如左圖(一)所示:n=6=100、N =1、R=R1、旋轉(zhuǎn)一次。依次類推,共旋轉(zhuǎn)N次。CBAR1R2圖11.2實(shí)驗(yàn)?zāi)康暮鸵饬x1. 了解如何利用C語(yǔ)言和圖形函數(shù)進(jìn)行繪圖,同時(shí)熟練掌握C+圖形繪制環(huán)境;2. 掌握C語(yǔ)言的
3、圖形模式控制函數(shù),圖形屏幕操作函數(shù),以及基本圖形函數(shù);3. 通過(guò)對(duì)Turbo C進(jìn)行圖形程序設(shè)計(jì)的基本方法的學(xué)習(xí),能繪制出簡(jiǎn)單的圖形;4. 通過(guò)繪制N+1個(gè)正n邊形,了解圖形系統(tǒng)初始化、圖形系統(tǒng)關(guān)閉和圖形模式的控制,并熟練運(yùn)用圖形坐標(biāo)的設(shè)置,包括定點(diǎn)、讀取光標(biāo)、讀取x和y軸的最大值以及圖形顏色的設(shè)置。1.3程序制作步驟(包括算法思想、算法流程圖等)算法思想:1.自動(dòng)搜索顯示器類型和顯示模式,初始化圖形系統(tǒng),通過(guò)printf、scanf語(yǔ)句控制半徑r、邊數(shù)n、多邊形的個(gè)數(shù)k、邊的每次旋轉(zhuǎn)角度d,的自由輸入;2.給定一內(nèi)接圓半徑r,由圓內(nèi)接多邊形的算法公式:xi=r*cos(i+1) *2.0*p
4、i/n)+320.0 yi=240.0-r*sin(2.0*pi/n *(i+1) 確定出多邊形N的各個(gè)頂點(diǎn)坐標(biāo),然后利用劃線函數(shù)line(),連接相鄰兩點(diǎn),即形成一個(gè)正多邊形。 3.根據(jù)邊與角的關(guān)系,以及線段定比分點(diǎn)公式,可知旋轉(zhuǎn)后的多邊形的各個(gè)頂點(diǎn)的坐標(biāo) 。公式如下: xi=(xi+xi+1/(k+1) y i=(yi+yi+1/(k+1) k=360/(n*d) (n為多邊形的邊數(shù),d為多邊形旋轉(zhuǎn)的度數(shù)) 然后與第二步相同,利用劃線函數(shù)line(),連接形成又一個(gè)旋轉(zhuǎn)過(guò)的正多邊形,這樣就形成了所要繪制的圖形;4.關(guān)閉圖形系統(tǒng)。1.4主程序程序代碼:/*- 多邊形的逐次旋轉(zhuǎn)-*/#incl
5、ude "stdio.h"#include "conio.h"#include "math.h"#include "graphics.h"#include "stdlib.h"#include "time.h"void main() int graphdriver=DETECT,graphmode; /*自動(dòng)搜索顯示器類型和顯示模式*/ int r; int i,j,n,k,d; float x,y,q; int a100,b100; char str180,str280;
6、printf("請(qǐng)輸入正接圓的半徑r:n"); scanf("%d",&r); printf("請(qǐng)輸入多邊形的邊數(shù)n:n"); scanf("%d",&n); printf("請(qǐng)輸入多邊形的個(gè)數(shù)k:n"); scanf("%d",&k); printf("請(qǐng)輸入每次的旋轉(zhuǎn)角度d:n"); scanf("%d",&d); initgraph(&graphdriver,&graphmode,&
7、quot;D:TC"); /*初始化圖形系統(tǒng)*/ printf("nt注意:maxx=%d,maxy=%dn",getmaxx(),getmaxy(); printf("ntr=%d, n=%d, k=%d, d=%d",r,n,k,d); x=(getmaxx()+1)/2.0; y=(getmaxy()+1)/2.0; q=360/n; /*角增量*/ q=q*3.1415926/180; /*將角增量化為弧度*/ for(i=1;i<=n;i+) /*計(jì)算初始正n角形頂點(diǎn)坐標(biāo)*/ ai=(int)(int)x+r*cos(i-1)*
8、q); bi=(int)(int)y-r*sin(i-1)*q); an+1=a1; bn+1=b1; /*閉合正n角形,以便連續(xù)畫線*/ /*-畫k個(gè)正多角形-*/ for(i=1;i<=k;i+) for(j=1;j<=n;j+) /*畫一個(gè)正多角形*/ line(aj,bj,aj+1,bj+1); for(j=1;j<=n;j+) /*計(jì)算下一個(gè)正多邊形頂點(diǎn)坐標(biāo)*/ aj=(int)(aj+(aj+1-aj)/d); bj=(int)(bj+(bj+1-bj)/d); an+1=a1; bn+1=b1; getch(); closegraph();1.5運(yùn)行結(jié)果圖 :實(shí)
9、驗(yàn)題二2.1實(shí)驗(yàn)題目請(qǐng)繪制一個(gè)圖:屏幕中央有一個(gè)半徑為R1=160的大圓和一個(gè)同心的且半徑為R2=120的小圓,同時(shí)在大圓和小圓中間均勻分布著12個(gè)與大圓和小圓相切的圓。如下圖2所示:要求:(1) 分別用12種不同的顏色和填充模式填充12個(gè)小圓;(2)用自定義模式填充中間小圓,且用漫延填充方法填充;(3) 用自定義模式填充中間小圓時(shí),填充模式圖案自己設(shè)計(jì)。例如,用字母A 、字母B、字母C填充圖案可設(shè)計(jì)為: 2.2實(shí)驗(yàn)?zāi)康暮鸵饬x1.學(xué)會(huì)運(yùn)用畫圓函數(shù)circle(),圖形填充函數(shù)包括:setfillstyle()、setfillpattern()以及floodfill()來(lái)填充圓;2.學(xué)會(huì)用自定義
10、模式填充指定圓,并且用漫延填充方法填充;3.學(xué)會(huì)用自定義圖案來(lái)填充指定圓。2.3程序制作步驟(包括算法思想、算法流程圖等)算法思想:1.輸入所要求環(huán)繞的小圓的個(gè)數(shù)n,以及中間圓所需的自定義填充模式m(1-A,2-C,3-D),設(shè)置畫筆顏色,利用circle()畫半徑為160的大圓,然后畫半徑為120的小圓并按照輸入的模式m選擇相應(yīng)的填充模式。 2.利用圓內(nèi)接多邊形的算法,算出環(huán)繞小圓的各個(gè)圓心坐標(biāo),公式如下: xi=r*cos( (i+1) * 2.0*pi/n)+200.0 yi=200.0-r*sin( (i+1) * 2.0*pi/n) 以20為半徑畫環(huán)繞的n個(gè)小圓,并用不同的顏色填充。
11、2.4主程序程序代碼:/*- 圓的填充-*/#include "stdio.h"#include "conio.h"#include "math.h"#include "graphics.h"#define pi 3.14159265#define MAX 50void main() int graphdriver=DETECT,graphmode; /*自動(dòng)搜索顯示器類型和顯示模式*/ double xMAX,yMAX; int i,j,n,m; double r,theta; double sin(double
12、),cos(double); char p18=(char)0x38,(char)0x6c,(char)0xc6,(char)0xc6, (char)0xff,(char)0xc6,(char)0xc6,(char)0x00; char p28=(char)0x36,(char)0x7e,(char)0x66,(char)0x60, (char)0x60,(char)0x66,(char)0x7e,(char)0x3c; char p38=(char)0xf0,(char)0xf8,(char)0x9c,(char)0x8c, (char)0x8c,(char)0x9c,(char)0xf8,
13、(char)0xf8; r=160.0; printf("please input the numble of N="); scanf("%d",&n); printf("(1-A,2-C,3-D)please input the numble of m="); scanf("%d",&m); initgraph(&graphdriver,&graphmode,"D:TC"); /*初始化圖形系統(tǒng)*/ theta=2.0*pi/n; setcolor(3); ci
14、rcle(200,200,200); setcolor(6); setfillstyle(12,0); switch(m) case 1: setfillpattern(p1,9); circle(200,200,120); floodfill(200,200,6); break; case 2: setfillpattern(p2,9); circle(200,200,120); floodfill(200,200,6); break; case 3: setfillpattern(p3,9); circle(200,200,120); floodfill(200,200,6); break
15、; while(!kbhit() for(j=2;j<=n;j+) for(i=0;i<=n;i+) xi=r*cos(theta*(i+j)+200.0; yi=200.0-r*sin(theta*(i+j); setcolor(i); circle(int)xi,(int)yi,(int)40); setfillstyle(SOLID_FILL,i); floodfill(int)xi,(int)yi,i); delay(10000); cleardevice(); setcolor(3); circle(200,200,200); setcolor(6); setfillst
16、yle(12,0); switch(m) case 1: setfillpattern(p1,9); circle(200,200,120); floodfill(200,200,6); break; case 2: setfillpattern(p2,9); circle(200,200,120); floodfill(200,200,6); break; case 3: setfillpattern(p3,9); circle(200,200,120); floodfill(200,200,6); break; getch(); closegraph();2.5運(yùn)行結(jié)果圖:實(shí)驗(yàn)題三3.1實(shí)
17、驗(yàn)題目自選題目:(1)請(qǐng)編寫一動(dòng)畫:繪制上述實(shí)驗(yàn)2中的圖形,并要求:ü 1.讓圖案中的12個(gè)小圓按順時(shí)針或逆時(shí)針?lè)较虿煌5匦D(zhuǎn);ü 2.半徑為R2=120的小圓用黑色和實(shí)填充模式填充,并在小圓內(nèi)繪制一些閃 爍的星星(可參考課本P81 例3.27)?;蛘哂貌煌念伾吞畛淠J讲煌5靥畛湫A,產(chǎn)生動(dòng)畫效果。(2)請(qǐng)編寫一動(dòng)畫:實(shí)現(xiàn)實(shí)驗(yàn)1中的圖形由大到小(由小到大)旋轉(zhuǎn)的動(dòng)態(tài)過(guò)程。(3)編寫一個(gè)描述一輛自行車在一公路上由左向右行駛的程序,運(yùn)行效果圖大致如圖三所示。(可參考課本P74 例3.21)(4)試著自行設(shè)計(jì)一個(gè)動(dòng)畫或美術(shù)圖案,并且上機(jī)編程實(shí)現(xiàn)。(5)構(gòu)造一種類似廣告片效果,
18、一幅或者多幅圖形圖像逐個(gè)顯示出來(lái),并配以文字說(shuō)明,顏色變化等。要求:對(duì)于實(shí)驗(yàn)3中的5個(gè)小題,選擇其中一個(gè)上機(jī)編程實(shí)現(xiàn)即可。3.2實(shí)驗(yàn)?zāi)康暮鸵饬x1. 描述一輛自行車在一公路上由右向左行駛;2. 熟練掌握畫圓函數(shù)circle(),以及畫線函數(shù)line(),自定義填充函數(shù)setfillstyle()等一些簡(jiǎn)單的繪圖函數(shù)。3.3程序制作步驟(包括算法思想、算法流程圖等)算法思想:1.自動(dòng)搜索顯示器類型和顯示模式,初始化圖形系統(tǒng)并設(shè)置背景顏色以及畫筆顏色;2.用畫圓函數(shù)circle()以及畫線函數(shù)line()繪制自行車的基本輪廓;3.繪制處于運(yùn)動(dòng)狀態(tài)的自行車車輪的軸線以及動(dòng)態(tài)畫面;4.繪制最后處于靜止?fàn)?/p>
19、態(tài)的自行車車輪的軸線;5.關(guān)閉圖形系統(tǒng)。3.4主程序程序代碼:/*- 自行車行駛動(dòng)畫-*/#include"stdlib.h"#include"graphics.h"#include"conio.h"#include"stdio.h"void main()void *w;int driver=DETECT,mode=0,i,start,end,j;initgraph(&driver,&mode," ");cleardevice();setbkcolor(15);setcolor(CGA-LIGHTGREEN);start=0;end=180;circle(387,290,37);circle(525,290,37);line(404,217,398,230);line(436,217,429,230);line(398,230,429,230);line(413,230,387,290);line(387,290,525,290);line(408,243,484,243);line(387,290,484,243);line(484,243,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生態(tài)環(huán)保項(xiàng)目農(nóng)民工勞務(wù)合同范本3篇
- 2024年甲乙雙方關(guān)于產(chǎn)品代工及銷售的詳細(xì)合同
- 二零二五年度水利工程監(jiān)理人員聘用及水資源管理協(xié)議3篇
- 二零二五年度安防產(chǎn)業(yè)園區(qū)安全管理制度合同3篇
- 2024年度數(shù)據(jù)中心項(xiàng)目經(jīng)理勞務(wù)合同3篇
- 2024年雇傭合同:權(quán)益與責(zé)任平衡3篇
- 二零二五年度慈善公益活動(dòng)策劃與執(zhí)行服務(wù)協(xié)議
- 2024年電子產(chǎn)品區(qū)域代理銷售協(xié)議一
- 2024年著作權(quán)與專利權(quán)全面合作具體合同版B版
- 2024運(yùn)營(yíng)總監(jiān)新能源車充電站運(yùn)營(yíng)管理合同3篇
- 建井施工方案
- YMO青少年數(shù)學(xué)思維28屆五年級(jí)全國(guó)總決賽試卷
- 烘干廠股東合作協(xié)議書
- 個(gè)人業(yè)績(jī)相關(guān)信息采集表
- 過(guò)敏性紫癜課件PPT
- 大學(xué)生暑期社會(huì)實(shí)踐證明模板(20篇)
- 自來(lái)水維修員年度工作總結(jié)
- ASTMB117-2023年鹽霧試驗(yàn)標(biāo)準(zhǔn)中文
- 國(guó)際海上避碰規(guī)則(中英版)課件
- 小學(xué)思政課《愛國(guó)主義教育》
- 批量訂購(gòu)車輛合同范本
評(píng)論
0/150
提交評(píng)論