Sự chuyển động tren ảnh 2 chiều ppt

4 135 0
Sự chuyển động tren ảnh 2 chiều ppt

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

Thông tin tài liệ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 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. If D(q)[i,j] <> b Then Vẽ điểm tơng ứng với màu D(q)[i,j]. 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 Hình 5. Tạo ra Mask (M) và Sprite (S) (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); 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ự. 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. 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í

Ngày đăng: 29/07/2014, 04:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan