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

Bài tập lớn kỹ thuật đồ họa và thực tại ảo IT32

13 180 6

Đ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

Tiêu đề Bài tập lớn kỹ thuật đồ họa và thực tại ảo IT32
Trường học Viện Đại Học Mở Hà Nội
Chuyên ngành Kỹ Thuật Đồ Họa và Thực Tại Ảo
Thể loại Bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 13
Dung lượng 134,45 KB
File đính kèm vẽ cái bàn.rar (374 B)

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

Nội dung

Câu 1: (4 điểm) Trình bày giải thuật vẽ đường thẳng theo thuật toán DDA. Cho ví dụ minh họa Là thuật toán tính toán các điểm vẽ dọc theo đường thẳng dựa vào hệ số góc của phương trình đường thẳng y = mx+b. Trong đó: m  Δy , Δ Δx  y2  y , Δ 1  x 2  x1 . Nhận thấy tọa độ của điểm x sẽ tăng 1 đơn vị trên mỗi điểm vẽ, còn việc quyết định chọn yi +1 là yi +1 hay yi sẽ phụ thuộc vào giá trị sau khi làm tròn của tung độ y. Tuy nhiên, nếu tính trực tiếp giá trị thực của y ở mỗi bước từ phương trình y = mx+b thì cần một phép toán nhân và một phép toán cộng số thực: yi +1 = mxi +1 + b = m(xi + 1) + b = mxi + b + m Câu 2: (6 điểm) Sử dụng ngôn ngữ thực tại ảo VRML vẽ cái bàn như sau (kích thước 1200600750mm)

Trang 1

BÀI TẬP LỚN

MÔN KỸ THUẬT

ĐỒ HỌA VÀ THỰC TẠI ẢO(IT32)

Họ và tên sinh viên:

Lớp:

Mã sinh viên:

Trang 3

BÀI TẬP LỚN SỐ 1

Câu 1: (4 điểm) Trình bày giải thuật vẽ đường thẳng theo thuật toán DDA Cho ví dụ minh họa

Là thuật toán tính toán các điểm vẽ dọc theo đường thẳng dựa vào hệ số góc của

phương trình đường thẳng y = mx+b Trong đó: m  Δy , Δ

Δx

 y2  y , Δ

1

 x

2

 x1

Nhận thấy tọa độ của điểm x sẽ tăng 1 đơn vị trên mỗi điểm vẽ, còn việc quyết định chọn

yi +1 là yi +1 hay yi sẽ phụ thuộc vào giá trị sau khi làm tròn của tung độ y Tuy nhiên, nếu tính trực tiếp giá trị thực của y ở mỗi bước từ phương trình y = mx+b thì cần một phép toán nhân và một phép toán cộng số thực: yi +1 = mxi +1 + b = m(xi + 1) + b = mxi + b + m

Để cải thiện tốc độ, người ta khử phép nhân trên số thực Ta có:

yi = mxi + b ⇒ yi +1 = yi + m →int(yi +1)

Có 2 khả năng:

 0<m<=1:

xi +1 = xi + 1,

yi +1 = yi + m→int(yi +1)

 m>1:

xi +1 = xi + 1/m → int(xi+1), yi +1 = yi + 1

y x

Trang 4

Hai trường hợp này dùng để vẽ một điểm bắt đầu từ bên trái đến điểm cuối cùng bên phải của đường thẳng (xem hình) Nếu điểm bắt đầu từ bên phải đến điểm cuối cùng bên trái thì xét ngược lại :

 0<m<=1: xi +1 = xi - 1, yi +1 = yi - m → int(yi +1)

 m>1: xi +1 = xi - 1/m → int(xi+1), yi +1 = yi - 1

Hai dạng đường thẳng có 0<m<1 và và m>1

Tương tự, có thể tính toán các điểm vẽ cho trường hợp m<0: khi |m|<=1 hoặc |m|>1

Ví dụ: Áp dụng thuật toán DDA vẽ đoạn thẳng từ điểm (2,2) đến điểm (8,4) m=2/6=0.33

#define Round(a) int(a+0.5) int Color = GREEN;

void LineDDA (int x1, int y1, int x2, int y2) {

int x = x1; float y = y1;

float m = float(y2-y1)/(x2-x1); putpixel(x, Round(y), Color); for(int i=x1; i<x2; i++)

{ x++;

y +=m;

putpixel(x, Round(y), Color);

} }

Trang 5

i xi yi y

Câu 2: (6 điểm) Sử dụng ngôn ngữ thực tại ảo VRML vẽ cái bàn như sau (kích thước 1200*600*750mm)

#VRML V2.0 utf8

#matban

Transform {

translation 0 0 0

rotation 0 0 1 0

children [

Trang 6

Shape {

appearance Appearance {

material Material {diffuseColor 1 1 0} }

geometry Box {

size 120 5 60 }

} ]

}

#chan1

Transform {

translation -58.5 -37.5 -28.5

rotation 0 0 1 0

children [

Shape {

appearance Appearance { material Material {diffuseColor 1 1 1}

}

geometry Box {

size 3 70 3 }

} ]

}

#chan2

Transform {

translation 58.5 -37.5 -28.5

rotation 0 0 1 0

Trang 7

children [

Shape {

appearance Appearance { material Material {diffuseColor 1 1 1} }

geometry Box {

size 3 70 3 }

} ]

}

#chan3

Transform {

translation 58.5 -37.5 28.5

rotation 0 0 1 0

children [

Shape {

appearance Appearance { material Material {diffuseColor 1 1 1} }

geometry Box {

size 3 70 3 }

} ]

}

#chan4

Transform {

translation -58.5 -37.5 28.5

Trang 8

rotation 0 0 1 0

children [

Shape {

appearance Appearance { material Material {diffuseColor 1 1 1} }

geometry Box {

size 3 70 3 }

} ]

}

#thanh_ngang1

Transform {

translation -58.5 -72 0

rotation 0 0 1 0

children [

Shape {

appearance Appearance { material Material {diffuseColor 1 1 1} }

geometry Box {

size 3 3 60 }

} ]

}

#thanh_ngang2

Trang 9

Transform {

translation 58.5 -72 0

rotation 0 0 1 0

children [

Shape {

appearance Appearance { material Material {diffuseColor 1 1 1} }

geometry Box {

size 3 3 60 }

} ]

}

Ngày đăng: 23/06/2023, 21:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w