1. Trang chủ
  2. » Công Nghệ Thông Tin

Sự chuyển động trên ảnh hai chiều

4 238 1

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 546 KB

Nội dung

Sự chuyển động trên ảnh hai chiều

Sự chuyển động trên ảnh hai chiều I. Bài toán Cho ảnh nền I, kích thớc MìN, và ảnh đối tợng D, kích thớc aìb, chứa một số trạng thái mô tả một chuyển động của đối tợng. Hãy thể hiện sự chuyển động của đối tợng trên nền I. Ví dụ, trong hình 2 là ảnh nền I và trong hình 1 là ảnh đối tợng D gồm 4 trạng thái. Các trạng thái này thể hiện sự di chuyển của con sâu đo. II. Thuật toán 1. Cắt các trạng thái của đối tợng thành các frames Các frames đợc lu vào các biến D(1) , ,D(qm), với qm là số trạng thái. Hình 1. ảnh đối tợng D gồm 4 trạng thái Hình 2. ảnh nền I Hình 3. Các frames của đối tợng D 2. Yêu cầu kỹ thuật khi vẽ các frames trên ảnh nền I: Chỉ vẽ phần của đối tợng, không vẽ phần nền của đối tợng. Nếu vẽ phần nền của đối tợng, ảnh nền sẽ bị hỏng. Nếu vẽ frame chứa ảnh đối tợng nh hình 4.b trên nền I thì nền sẽ bị phá vỡ (hình 4.d). Yêu cầu đặt ra là vẽ frame chứa đối tợng trên nền sao cho nền không bị phá vỡ. Cách giải quyết: 1. Cách giải quyết thứ nhất: Trong trờng hợp nền của frame đợc biết trớc, có số hiệu b. Kí hiệu chiều cao và chiều rộng của frame là a và br. Khi vẽ frame D(q) trên I, xét từng điểm ảnh trên D(q): nếu điểm đang đợc xét trên D(q) khác màu với b thì vẽ; nếu có màu là b thì không vẽ: For i:=1 to a do For j:=1 to br do If D(q)[i,j] <> b Then Vẽ điểm tơng ứng với màu D(q)[i,j]. Hình 4. a) ảnh nền I; b) Frame chứa đối tợng; d) Vẽ frame chứa đối tợng trên nền I; e) Nền I chứa đối tợng theo đúng yêu cầu đặt ra không phá vỡ nền. Theo cách giải quyết thứ nhất: 1. Đọc và vẽ ảnh nền I; 2. Xác định đờng đi của đối tợng; 3. Tính chiều cao H và chiều rộng W của mỗi frame; 4. Đọc ảnh đối tợng vào các frames D(1), D(2), , D(qm) 5. Vị trí đầu tiên x := 1; y:= y0; 6. Frame đầu tiên q:=1; 7. Repeat a) Cắt nền ở vị trí (x,y)-(x+W-1,y+H-1) vào biến NB; b) Vẽ frame D(q) từ vị trí (x,y); c) Delay(?); d) Vẽ nền NB từ vị trí (x,y); e) Tính vị trí mới x := (x+1) mod 320 chẳng hạn; f) Tính frame mới q := (q +1) mod qm ; Until KeyPressed; 2. Cách giải quyết thứ hai: 1. Từ ảnh D tạo ra Mask M (hình 5.a) sao cho phần của đối tợng có màu số hiệu 0, màu của nền frame có số hiệu 255 hoăc 15 (nếu số màu là 16) và Sprite S (hình 5.b) sao cho mầu của đối tợng trên frame đợc giữ nguyên và màu nền trên frame có số hiệu 0. 2. Bớc vẽ bảo toàn nền: a) Vẽ Mask M với phép toán AND: khi này phần tơng ứng với đối tợng trên nền I chuyển thành màu số 0 (nền I AND với 0) và phần nền I tơng ứng với nền frame đợc giữ nguyên (nền I AND với 255 hoặc 15); Hình 5. Tạo ra Mask (M) và Sprite (S) b) Vẽ Sprite S với phép toán OR: khi này phần tơng ứng với đối t- ợng trên nền I chính là đối tợng I (nền I là 0 OR với đối tợng) và phần nền I tơng ứng với nền frame đợc giữ nguyên ( nền I OR với 0); - Chứng minh 2 cách vẽ này bảo toàn nền . Sự chuyển động trên ảnh hai chiều I. Bài toán Cho ảnh nền I, kích thớc MìN, và ảnh đối tợng D, kích thớc aìb, chứa một số trạng thái mô tả một chuyển động của đối tợng. Hãy thể hiện sự chuyển. thể hiện sự chuyển động của đối tợng trên nền I. Ví dụ, trong hình 2 là ảnh nền I và trong hình 1 là ảnh đối tợng D gồm 4 trạng thái. Các trạng thái này thể hiện sự di chuyển của con sâu đo. II biết trớc, có số hiệu b. Kí hiệu chiều cao và chiều rộng của frame là a và br. Khi vẽ frame D(q) trên I, xét từng điểm ảnh trên D(q): nếu điểm đang đợc xét trên D(q) khác màu với b thì vẽ;

Ngày đăng: 02/04/2014, 00:21

TỪ KHÓA LIÊN QUAN

w