Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: lỗi màn hình draw !!!

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    8

    Angry lỗi màn hình draw !!!

    các bro ui , em làm 1 project nhỏ là vẽ đườgn thẳng , nhưng khi debug thì lại đường thẳng lại bị mất 1 khúc chính giữa . giúp em với

    đây là hình em đã chụp lại :

    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    ---------------------------------------------------
    Vì một người đi mãi...

    ---------------------------------------------------

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

    không có code thì khó mà biết lỗi lắm, tụi mình làm chưa gặp cái này

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Hix, bó tay với bạn, đưa thế thì biết gì mà giúp bạn.
    Coi thử có cái control nào che nó không (Đôi lúc bạn thêm vào mà quên xóa khi không dùng đấy)
    Không biết ghi gì luôn ...

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    8

    đây là toàn bộ code của mình !! Mình ko có xài bất kỳ control nào đâu bạn ui !!!

    http://kien.of.huynh.googlepages.com/Bresenham.rar
    ---------------------------------------------------
    Vì một người đi mãi...

    ---------------------------------------------------

  5. #5
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Code gì mà những 3MB vậy , tớ định xem cho cậu nhưng nặng quá ko down (tốn tiền ) .Bạn chỉ cần Post đoạn code trong hàm vẽ thôi .

  6. #6
    Ngày gia nhập
    10 2007
    Bài viết
    8

    Mặc định lỗi màn hình draw !!!

    đây là code hàm vẽ của mình !!!

    C++ Code:
    1. #include "stdafx.h"
    2. #include "math.h"
    3.  
    4. void Swap(int &a, int &b)
    5. {
    6.     int temp;
    7.     temp = a;
    8.     a = b;
    9.     b = temp;
    10. }
    11. int Round(float a)
    12. {
    13.     return (int)(a + 0.5);
    14. }
    15.  
    16. // Bresenham
    17. // Trường hợp 1 : 0<m<1 (dx > 0)
    18. void Bresenham1(CDC *pDC, int x1, int y1, int x2, int y2, int color)
    19. {
    20.     int x = x1, y = y1;
    21.     int dx = x2 - x1, dy = y2 - y1;
    22.     int p = 2 * dy - dx , c1 = 2 * dy - 2 * dx, c2 = 2 * dy;
    23.     pDC->SetPixel(x,y,color);
    24.     if(x1 > x2)
    25.     {
    26.         Swap(x1,x2);
    27.         Swap(y1,y2);
    28.     }
    29.     while(x < x2)
    30.     {
    31.         if(p >= 0)
    32.         {
    33.             p += c1;
    34.             y++;
    35.         }
    36.         if(p < 0)
    37.             p += c2;
    38.         x++;
    39.         pDC->SetPixel(x,y,color);
    40.         Sleep(10);
    41.     }
    42. }
    43. // Truong hop 2 : -1<m<0 (dx > 0)
    44. void Bresenham2(CDC *pDC, int x1, int y1, int x2, int y2, int color)
    45. {
    46.     int x = x1, y = y1;
    47.     int dx = x2 - x1, dy = y2 - y1;
    48.     int p = -2 * dy - dx , c1 = -2 * dy - 2 * dx, c2 = -2 * dy;
    49.     pDC->SetPixel(x,y,color);
    50.     if(x1 > x2)
    51.     {
    52.         Swap(x1,x2);
    53.         Swap(y1,y2);
    54.     }
    55.     while(x < x2)
    56.     {
    57.         if(p >= 0)
    58.         {
    59.             p += c1;
    60.             y--;
    61.         }
    62.         if(p < 0)
    63.             p += c2;
    64.         x++;
    65.         pDC->SetPixel(x,y,color);
    66.         Sleep(10);
    67.     }
    68. }
    69. // Truong hop 3 : m>1 (dy > 0)
    70. void Bresenham3(CDC *pDC, int x1, int y1, int x2, int y2, int color)
    71. {
    72.     int x = x1, y = y1;
    73.     int dx = x2 - x1, dy = y2 - y1;
    74.     int p = 2 * dx - dy , c1 = 2 * dx - 2 * dy, c2 = 2 * dx;
    75.     pDC->SetPixel(x,y,color);
    76.     if(y1 > y2)
    77.     {
    78.         Swap(x1,x2);
    79.         Swap(y1,y2);
    80.     }
    81.     while(y < y2)
    82.     {
    83.         if(p >= 0)
    84.         {
    85.             p += c1;
    86.             x++;
    87.         }
    88.         if(p < 0)
    89.             p += c2;
    90.         y++;
    91.         pDC->SetPixel(x,y,color);
    92.         Sleep(10);
    93.     }
    94. }
    95. // Truong hop 4 : m < -1 (dy > 0)
    96. void Bresenham4(CDC *pDC, int x1, int y1, int x2, int y2, int color)
    97. {
    98.     int x = x1, y = y1;
    99.     int dx = x2 - x1, dy = y2 - y1;
    100.     int p = -2 * dx - dy , c1 = -2 * dx - 2 * dy, c2 = -2 * dx;
    101.     pDC->SetPixel(x,y,color);
    102.     if(y1 > y2)
    103.     {
    104.         Swap(x1,x2);
    105.         Swap(y1,y2);
    106.     }
    107.     while(y < y2)
    108.     {
    109.         if(p >= 0)
    110.         {
    111.             p += c1;
    112.             x--;
    113.         }
    114.         if(p < 0)
    115.             p += c2;
    116.         y++;
    117.         pDC->SetPixel(x,y,color);
    118.         Sleep(10);
    119.     }
    120. }
    121. // Tong Quat :
    122. void Bresenham(CDC *pDC, int x1, int y1, int x2, int y2, int color)
    123. {
    124.     int dx = x2 - x1, dy = y2 - y1;
    125.     if(abs(dx) > abs(dy))
    126.         if(dx * dy > 0) // th1
    127.             Bresenham1(pDC,x1,y1,x2,y2,color);
    128.         else // th2
    129.             Bresenham2(pDC,x1,y1,x2,y2,color);
    130.     else
    131.         if(abs(dx) > abs(dy))
    132.         if(dx * dy > 0) // th3
    133.             Bresenham3(pDC,x1,y1,x2,y2,color);
    134.         else // th4
    135.             Bresenham4(pDC,x1,y1,x2,y2,color);
    136. }

    Vui lòng để code vào trong tag code. Đọc Nội quy để biết thêm chi tiết
    ---------------------------------------------------
    Vì một người đi mãi...

    ---------------------------------------------------

  7. #7
    Ngày gia nhập
    10 2007
    Bài viết
    169

    - Code bạn viết mình thấy sai khá nhiều (nhiều trường hợp không chạy được!)
    - Những lỗi đó là do code bạn viết thôi!
    - Nếu muốn dùng bresenham, bạn có thể xem code ở đây!
    http://forums.congdongcviet.com/showthread.php?t=7343

  8. #8
    Ngày gia nhập
    10 2007
    Bài viết
    8

    Mình lại không nghỉ như bạn, đồng ý code mình nhìu lỗi thiệt , nhưng debug chương trình vẫn ok mà !! Khi vẽ lại ko ra đúng như ý mình , (đường thẳng bị mất 1 đoạn ). MÌnh ko hỉu cho lắm !! hix
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    ---------------------------------------------------
    Vì một người đi mãi...

    ---------------------------------------------------

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

  1. Những lỗi hay gặp ở Corel Draw
    Gửi bởi nguyennt06 trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 03-02-2012, 03:17 PM
  2. Lập trình C | Giải random về CARD DRAW
    Gửi bởi hunter205 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 14-07-2011, 09:17 PM
  3. draw Arc in MFC
    Gửi bởi menhero trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 07-06-2010, 12:40 AM
  4. Draw 2D bằng GDI và Save lại bằng C#
    Gửi bởi anhtuyenbk trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 15-04-2008, 09:05 PM

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