JavaScript is required

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++;
      }
}

A.

Giải thuật Bresenham xây dựng đường tròn

B.

Giải thuật MidPoint xây dựng đường tròn

C.

Giải thuật Bresenham xây dựng đường ellipse

D.

Giải thuật Midpoint xây dựng đường ellipse

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