Đánh giá, nhận xét, review các công ty tuyển dụng
Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Thuật toán Midpoint để vẽ đường tròn. Giúp đỡ mình với?

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    1

    Wink Thuật toán Midpoint để vẽ đường tròn. Giúp đỡ mình với?

    Dưới đây là thuật toán midpoint vẽ đường tròn em được biết!
    Code:
    // Ve 8 diem doi xung
    void Put8Pixel(int x, int y)
    {
    putpixel(x, y, Color);
    putpixel(y, x, Color);
    putpixel(y, -x, Color);
    putpixel(x, -y, Color);
    putpixel(-x, -y, Color);
    putpixel(-y, -x, Color);
    putpixel(-y, x, Color);
    putpixel(-x, y, Color);
    } // Put8Pixel
    void CircleMidPoint (int R)
    {
    int x, y;
    x = 0;
    y = R;
    Put8Pixel(x, y);
    p = 1 - R; // 5/4-R
    while (x < y)
    {
    if (p < 0)
    p += 2*x + 3;
    else
    {
    p += 2*(x -y) + 5;
    y--;
    }
    x++;
    Put8Pixel(x, y);
    }
    } // CircleMidPoint
    Bác nào biết tại sao có thể thay p=5/4-R bởi p=1-R không? giải thích giùm em với! Đa tạ rất nhiều!
    Đã được chỉnh sửa lần cuối bởi patuanit : 11-07-2009 lúc 09:25 AM.

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Bác nào biết tại sao có thể thay p=5/4-R bởi p=1-R không? giải thích giùm em với! Đa tạ rất nhiều!
    Phép toán / trên trường số nguyên thì 5/4=1

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Bình Phước
    Bài viết
    78

    Tự dưng lên Google tìm về Midpoint lại thấy cái topic này, xin phép được khai quật lại một tí vì mình muốn bổ sung thêm câu trả lời
    Ở đây, thay 5/4 bằng 1 là do
    - trước hết, p và R đều là kiểu int.
    - Do p chỉ so sánh với 0, và p = 5/4 -R. Ta nhận thấy rằng, với 2 số nguyên x và R, so sánh hiệu của x - R và x - R + 0.25 thì không đổi dấu ( 0.25 không ăn nhằm gì cả ). Để đơn giản phép tính toán (theo yêu cầu chạy nhanh, vẽ mà) nên người ta bỏ phép tính 5 / 4 đi và thay vào đó là 1.

Các đề tài tương tự

  1. Sử dụng MidPoint Vẽ Đường tròn trong OpenGL với lập trình C++
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 02-05-2013, 11:12 PM
  2. Mã nguồn C Lỗi Code thuật toán Minpoint vẽ đường tròn không biết lỗi ở đâu mà không chạy được mong mọi người chỉ giúp.
    Gửi bởi keodautaydang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 23-02-2013, 10:04 AM
  3. Help! Lập trình đồ họa! Vẽ đường thẳng bằng thuật toán midpoint
    Gửi bởi kuhoang0512 trong diễn đàn Nhập môn lập trình Java
    Trả lời: 0
    Bài viết cuối: 21-04-2012, 11:39 PM
  4. Bài tập C Bài tập về Thuật toán MidPoint, tô màu, vẽ đa giác...
    Gửi bởi hoatkh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 25-12-2011, 04:12 PM
  5. Trình bày giải thuật Midpoint vẽ đoạn thẳng cho trường hợp -1<a<0
    Gửi bởi honeykt trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 18-07-2010, 07:58 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn