JavaScript is required

Đoạn mã sau mô tả giải thuật nào?

dx = x2 – x1; dy = y2 – y1; p = 2 *dy – dx
for (x = x1;x <= x2;x++)
{
     putpixel(x,y,c);
     if (p < 0)
     p+= 2 * dy;
     else
     {
     p+= 2 * dy – 2 * dx;
     y++;
     }
}

A.

Giải thuật Bresenham vẽ đoạn thẳng với 0<k<1

B.

Giải thuật Bresenham vẽ đoạn thẳng với k>1

C.

Giải thuật vẽ đoạn thẳng Midpoint với 0<k<1

D.

Giải thuật vẽ đoạn thẳng Midpoint với k>1

Trả lời:

Đáp án đúng: A


Đoạn mã được cung cấp mô tả thuật toán Bresenham để vẽ đoạn thẳng. Thuật toán Bresenham là một thuật toán hiệu quả để raster hóa đường thẳng bằng cách sử dụng chỉ các phép toán số học với số nguyên. Trong đoạn mã, biến `p` là tham số quyết định (decision parameter) được cập nhật trong mỗi bước lặp để xác định pixel nào sẽ được vẽ tiếp theo. Các phép tính `dx = x2 - x1` và `dy = y2 - y1` tính khoảng cách theo trục x và trục y. Điều kiện `if (p < 0)` xác định xem có nên giữ nguyên giá trị y hay tăng y lên 1. Đoạn code này phù hợp với trường hợp 0 < k < 1, vì nó giả định rằng sự thay đổi x lớn hơn sự thay đổi y, tức là đoạn thẳng có độ dốc nhỏ hơn 1.

Cùng ôn thi với bộ câu hỏi trắc nghiệm môn Đồ họa máy tính có đáp án mà tracnghiem.net chia sẽ dưới đây, nhằm giúp các bạn sinh viên chuyên ngành chuẩn bị cho kì thi sắp tới.


50 câu hỏi 60 phút

Câu hỏi liên quan