1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực hành đồ họa máy tính

39 1,2K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 1,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 linetox,y để vẽ.. Viết chương trình nhập toạ độ nguyên của hai điểm đầu mút của đoạ

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Đà Nẵng, 12/2013

Trang 2

MỤC LỤC

NỘI DUNG THỰC HÀNH 2

PHẦN 1 BÀI TẬP VỀ NHÀ 4

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

Bài tập 2 Các thuật toán cơ bản 7

Bài tập 3 Hình học Fractal 13

Bài tập 4 Phép biến đổi 2 chiều 18

Bài tập 5 Thiết kế đường cong và mặt cong 25

PHẦN 2 BÀI TẬP TRÊN LỚP 31

Bài tập 1 31

Bài tập 2 35

Trang 3

NỘI DUNG THỰC HÀNH PHẦN 1 : BÀI TẬP VỀ NHÀ

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

Viết chương trình vẽ đồ thị hàm số y=sin(x) với -x bằng cách:

a) Cho x chạy từ - đến , ở mỗi bước tính giá trị y rồi làm tròn để vẽ bằng lệnh

putpixel(x,y,c).

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ẽ Thay đổi giá trị n để theo dõi kết quả.

Bài tập 2 : Các thuật toán cơ bản

1 Viết chương trình nhập toạ độ nguyên của hai điểm đầu mút của đoạn thẳng

AB Dùng thuật toán Bresenham để vẽ đoạn thẳng AB

Cần nhập cho tất cả các trường hợp

2 Viết chương trình nhập toạ độ của tâm I và bán kính R của đường tròn C(I,R) Dùng thuật toán Michener để vẽ đường tròn C

Bài tập 3 : Hình học Fractal

Viết chương trình nhập bậc n của các đường cong Fractal Vẽ các đường cong bậc n:

đường cong Koch, C và Rồng

Bài tập 4 : Phép biến đổi 2 chiều

Cài đặt các phép affine hai chiều trong hệ toạ độ thuần nhất:

a) Khai báo kiểu afine

b) Định nghĩa các hàm cần thiết: biến đổi ảnh của 1 điểm, cài đặt cho các phép tịnh tiến, phép quay, phép biến dạng, phép méo hình, tích hai phép afine

Chương trình vẽ giữa màn hình một đa giác đều và gọi các hàm này để mô phỏng quạt máy quay bằng cách cho đa giác quay quanh tâm của nó

Bài tập 5 : Thiết kế đường cong và mặt cong

Viết chương trình nhập toạ độ của n điều khiển, dùng thuật toán Casteljau để vẽ

đường cong qua các điểm điều khiển này

Trang 5

PHẦN 1 BÀI TẬP VỀ NHÀ Bài tập 1 Khái quát hệ thống đồ họa

Thuật toán :

Thiết lập các cấu hình đơn giản

Vẽ hệ trục tọa độ chia màn hình thành 4 phần bằng nhau

Trang 7

Kết quả Demo

Câu a

Câu b

Trang 8

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)

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

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

Trang 16

c1 = Encode(p1); c2 = Encode(p2);

in1 = Inw(p1); in2 = Inw(p2);

if(in1 && in2) return 1;

Trang 19

Bài tập 4 Phép biến đổi 2 chiều

Trang 20

- d+=45;

+ Ngược lại linerel(int(l*cos(d*Rad)),int(l*sin(d*Rad)));

3 Cong Rồng (Dragon)

+ Giống đường cong C nhưng có sự xuất hiện thêm biến dấu s

+ Lời gọi đệ quy sẽ là:

Trang 23

void xoaydoc(point *p1,point*p2,point *p3,point*p4)

{ //xoay quanh truc ngang;

Trang 24

void xoayngang(point *p1,point*p2,point *p3,point*p4)

{ //xoay quanh truc ngang;

Trang 26

Bài tập 5 Thiết kế đường cong và mặt cong

Câu 1 : khai báo

typedef float MATRIX[3][3];

typedef MATRIX Affine;

typedef MATRIX Point ;

Câu 2 : biến đổi ảnh của 1 điểm

void Change(Point A,Affine &B){

Trang 27

typedef float Point[2];

typedef float Affine[3][3];

void Change(Point A,Affine &B){

B[0][0]=A[0]; B[0][1]=A[1]; B[0][2]=1;

Trang 29

void Codan(Affine &T,float Sx,float Sy){

Trang 32

PHẦN 2 BÀI TẬP TRÊN LỚP Bài tập 1.

Viết chương trình cài đặt thuật toán Bresham Ứng dụng thuật toán Bresham để vẽ ngôinhà

Trang 36

- Vẽ lại đường thẳng P1P2 với màu khác

- Vẽ lại đường thẳng P1P2 với màu khác

Mã nguồn

#include<stdio.h>

#include<conio.h>

#include<graphics.h>

//Thuat toan to mau fill

void fill(int x, int y, int oldcolor, int newcolor)

struct point {float x,y;};

struct code {int l,t,r,b;};

code Encode(point p)

{

code c;

Ngày đăng: 21/10/2014, 10:39

HÌNH ẢNH LIÊN QUAN

Bài tập 3. Hình học Fractal - Báo cáo thực hành đồ họa máy tính
i tập 3. Hình học Fractal (Trang 14)

TỪ KHÓA LIÊN QUAN

w