Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Tính P trong giải thuật vẽ đường thẳng Bresenham!

  1. #1
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Angry Tính P trong giải thuật vẽ đường thẳng Bresenham!

    Chào các bạn. Mình có một chút khúc mắc về việc tính giá trị của biến P trong giải thuật vẽ đường thẳng Bresenham. Mong các bạn chỉ giáo!
    Ví dụ: Cho (x1,y1)=(1,2);(x2,y2)=(13,8). Áp dụng thuật toán Bresenham tính giá trị x,y và P của từng bước?
    Dưới đây là lời giải:
    Ta có:
    dx=x2-x1=12.
    dy=y2-y1=6.
    const1=2*dy=12.
    const2=2*(dy-dx)=-12.
    p=2*dy-dx=0.
    Các bạn có thể cho mình biết để tính được giá trị P đầu tiên làm như trên có đúng không?
    Mình hỏi vậy tại vì có đáp án của bài này như sau:
    dx=x2-x1=12.
    dy=y2-y1=6.
    const1=2*dy=12.
    const2=2*(dy-dx)=-12.
    P=-1.
    xi 1 2 3 4 5 6 7 8 9 10 11 12 13
    yi 2 2 3 3 4 4 5 5 6 6 7 7 8
    pi -1 11 -9 3 -9 3 -9 3 -9 3 -9 3 -9
    Trong đáp án này thì tại sao P=-1?
    Rất mong sớm nhận được sự chỉ dạy của các bạn. Thanks.

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Thuật toán bresenham dựa trên ý tưởng tìm điểm xi +1 và yi+1 tiếp theo của điểm x,y . Về thuật toán và cách chứng minh chắc ko cần phải nói nhiều ha . Giá trị đầu tiên của p là p0 được tính theo công thức sau : p0=2dy-dx . Từ đây bạn đã có thể bắt đầu tính các giá trị p tiếp theo ( pi+1 ) theo công thức nếu pi<0 thìe pi+1 =pi+2dy . Nếu pi>=0 thì pi+1=pi+2dy-2dx . Theo mình nghĩ chắc đáp án p0=-1 là sai rồi vì đúng ra nó phải =0 .

  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Cảm ơn sự chia sẻ của bạn. Mình cũng đã tính P và Po=0, chỉ tại giáo trình của mình học bài giải của nó lại là Po=-1 cho nên mình mới thấy khó hiểu.

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

  1. Kỹ thuật C++ Vẽ elip bằng thuật toán bresenham trong C chạy không ra kết quả đúng?
    Gửi bởi timduncanboy trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 08-10-2013, 08:37 PM
  2. Kỹ thuật C++ 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 C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 14-07-2010, 09:39 AM
  3. Thuật toán vẽ đường thẳng Bresenham
    Gửi bởi trungtin1710 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 08-06-2010, 10:52 PM
  4. Vẽ đường thẳng DDA và Bresenham!
    Gửi bởi alias_va trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 18-11-2007, 01:00 AM
  5. [ Solved ] Thuật toán vẽ đường thẳng Bresenham
    Gửi bởi nanosi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 01-11-2007, 01:09 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