1. Trang chủ >
  2. Công nghệ thông tin >
  3. Lập trình >

Bài tập 1. Khái quát hệ thống đồ họa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.07 MB, 39 trang )


Báo Cáo Thực Hành Đồ Họa Máy Tính



getch();

}

b. Chia miền xác định thành n đoạn bằng nhau, tính giá trị y lại các đầu mút

của các đoạn rồi dùng lệnh lineto(x,y) để vẽ :

#include

#include

#include

#include

#include

main(){

int gd = 0, gm=0,c;

float x,y;

initgraph(&gd,&gm,"");

setcolor(BLUE);

line(300,50,300,350);

line(100,200,500,200);

moveto(-180/1.5+300,200);

for(int x=-180;x<=180;){

y=20*sin(x*0.017);

lineto(x/1.5+300,y+200);

x=x+2;

setcolor(RED);

}

getch();

}



Kết quả Demo

Sinh viên thực hiện: Lê Long Bảo, Lớp: 12TLT.CNTT



Trang 6



Báo Cáo Thực Hành Đồ Họa Máy Tính



Câu a



Câu b



Sinh viên thực hiện: Lê Long Bảo, Lớp: 12TLT.CNTT



Trang 7



Báo Cáo Thực Hành Đồ Họa Máy Tính



Bài tập 2.



Các thuật toán cơ bản



Thuật toán :

Câu 1 :

Nhập các thông số cần thiết và tính ∆x, ∆y, m.

Xét các trường hợp :



- Nếu m>1 và m<-1 có điểm chung là thay ∆x, ∆y cho nhau.

- Nếu m<0 thì ∆y = -∆y.

Tính e(Ti), e(Si), e1.

Xét :



- Nếu m>1 hoặc m<-1 lặp điều kiện yA!=yB (y tăng chậm hơn).

o Putpixel(x,y,c).

o Nếu e<0 (ban đầu là e1) thì e+= e(Ti).

o Ngược lại e+=e(Si) và tăng x lên 1 đơn vị



- Nếu m>1 thì tăng y lên 1 và ngược lại giảm y 1 đơn vị.

o Lặp điều kiện xA!=xB (x tăng chậm hơn y).

o Putpixel(x,y,c).

o Nếu e<0 e+=e(Ti).

o Ngược lại e+=e(Si).

o m>0 tăng y.

o m<0 giảm y.

o Tăng x lên 1 đơn vị.

Câu 2 :

Nhập các số cần thiết và tính d.

Lặp nếu x<=y.

setviewport(xo,yo,xo+R,yo+R,0).

Putpixel 8 điểm đối xứng nhau qua tâm O

Nếu d<0 d+=4*x+6.

Ngược lại d+=4*(x-y)+10 và giảm y 1 đơn vị.

Tăng x lên 1 đơn vị.

Sinh viên thực hiện: Lê Long Bảo, Lớp: 12TLT.CNTT



Trang 8



Báo Cáo Thực Hành Đồ Họa Máy Tính



Chương trình nguồn :

Câu 1 :

#include

#include

#include

#include

#include

void bresline(int xa,int ya,int xb,int yb)

{int x,y,e,ekt,et,dx,dy,c;

float kt,dy1,dx1;

if(xa>xb) {

int t=xa;

int t1=ya;

xa=xb;

ya=yb;

xb=t;

yb=t1;

}

dx=xb-xa;dy=yb-ya;

dx1=float(dx);

dy1=float(dy);

kt=dy1/dx1;

if(kt>0&&kt<1){

ekt=dy+dy;e=ekt-dx;et=e-dx;

c=getcolor();y=ya;

for(x=xa;x<=xb;x++){

putpixel(x,y,c);

if(e<0) e=ekt+e;

Sinh viên thực hiện: Lê Long Bảo, Lớp: 12TLT.CNTT



Trang 9



Xem Thêm
Tải bản đầy đủ (.docx) (39 trang)

×