Giải thuật sau đây là giái thuật nào đã học?
Void Function(int xt, int yt, int r, int c)
{
int x,y,d;
x = 0;
y = r;
d = l –r;
while ( x < = y)
{
putpixel(xt + x, yt + y,c);
putpixel(xt - x, yt + y,c);
putpixel(xt + x, yt - y,c);
putpixel(xt - x, yt - y,c);
putpixel(xt + y, yt + x,c);
putpixel(xt - y, yt + x,c);
putpixel(xt + y, yt - x,c);
putpixel(xt - y, yt - x,c);
if (d < 0)
d+= 2 * x + 3;
else {
d+= 2 * (x-y) + 5;
y;
}
X++;
}
}
Trả lời:
Đáp án đúng: B
Đoạn code trên triển khai giải thuật Midpoint để vẽ đường tròn. Các đặc điểm nhận dạng chính:
* **Tính đối xứng:** Thuật toán sử dụng tính đối xứng của đường tròn để chỉ cần tính toán cho 1/8 đường tròn, sau đó vẽ các điểm đối xứng qua các trục và đường chéo. Điều này được thể hiện qua việc sử dụng `putpixel` với các biến đổi `(xt + x, yt + y)`, `(xt - x, yt + y)`,... cho 8 điểm đối xứng.
* **Biến `d` (decision variable):** Biến `d` được sử dụng để quyết định điểm tiếp theo cần vẽ. Nếu `d < 0`, điểm tiếp theo nằm gần đường tròn hơn theo hướng x, và ngược lại, nếu `d >= 0`, điểm tiếp theo nằm gần đường tròn hơn theo hướng y.
* **Cập nhật `d`:** Cách `d` được cập nhật dựa trên việc đánh giá trung điểm giữa các pixel có thể. Các công thức `d += 2 * x + 3` và `d += 2 * (x-y) + 5` là đặc trưng của giải thuật Midpoint.
Vì vậy, đáp án đúng là "Giải thuật MidPoint xây dựng đường tròn".
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
