Đoạn mã sau mô tả thuật toán nào?
void Line(int x1, int y1, int x2, int y2, Color mau)
{
float m = (float)(y2-y1)/(x2-x1);
if (m < 1)
{
int x = x1;
float y = y1;
putpixel(x, round(y), mau);
}
else
{
int y = y1;
float x = x1;
putpixel(round(x),y, mau)
while (y < y2)
{
x+= float(1)/m;
y++;
putpixel(round(x),y,mau);
}
}
}
Trả lời:
Đáp án đúng: A
Đoạn mã trên mô tả giải thuật DDA (Digital Differential Analyzer) để vẽ đường thẳng. Giải thuật DDA tính toán các điểm ảnh gần đúng nhất trên đường thẳng bằng cách tăng dần x hoặc y, tùy thuộc vào độ dốc của đường thẳng (m). Nếu |m| < 1, giải thuật tăng x lên 1 và tính y tương ứng. Ngược lại, nếu |m| >= 1, giải thuật tăng y lên 1 và tính x tương ứng. Việc sử dụng `putpixel(x, round(y), mau)` và `putpixel(round(x), y, mau)` cho thấy việc vẽ điểm ảnh tại vị trí (x, y) đã được làm tròn đến giá trị nguyên gần nhất, đây là đặc trưng của giải thuật DDA.
Các giải thuật khác như Midpoint và Bresenham sử dụng các phương pháp khác để quyết định điểm ảnh nào sẽ được vẽ, thường dựa trên việc tính toán các giá trị quyết định để giảm thiểu việc sử dụng phép toán dấu phẩy động.
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
