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

Đề tài: Vẽ một hình chữ nhật trong suốt

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    Sơn La
    Bài viết
    11

    Mặc định Vẽ một hình chữ nhật trong suốt

    Các bạn ơi cho tui hỏi: Tôi muốn vẽ một hình chữ nhật, trong hình này thì chỉ khi gặp một màu nào đó thì biến thành màu khác mà mình định vẽ, còn các màu còn thì vẫn giữ nguyên (ko bị mất đi khi vẽ hình chữ nhật đó). Giống như trong phần mềm CoolEdit ý. Khi mở 1 file âm thanh thì nó vẽ cho ta sóng âm có màu xanh trên nền màu đen, khi người sử dụng nhấn chuột trái và kéo thì nó vẽ cho ta một hình chữ nhật màu trắng nhưng vẫn nhìn rõ được phần vẽ sóng trong hình chữ nhật đó (trong hình chữ nhật đó chỉ có chỗ nào là màu đen thì nó biến thành màu trắng thôi). Ai biết hay có ý tưởng vẽ nó thế nào thì chỉ giáo giùm với

    Thanh you verry much

    Hiện nay mình đang có ý tưởng thế này: ta sẽ duyệt tất cả các điểm trong hình chữ nhật, nếu điểm nào có màu đen thì ta vẽ lại thành màu trắng, còn các điểm có màu khác thì bỏ qua. Vì mới làm quen với VC nên ko biết nó có lệnh nào lấy màu và tô màu cho từng điểm không, seach mãi mà vẫn chưa ra. Ai biết chỉ giùm với. Cám ơn nhiều

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

    Thay vì vẻ nguyên hình chử nhật, tại sao bạn không vẻ bốn đường thẳng!

  3. #3
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Thay vì vẻ nguyên hình chử nhật, tại sao bạn không vẻ bốn đường thẳng!
    Bạn ấy thích làm hình chữ nhật cho nó trực quan & đẹp mắt.

    Hiện nay mình đang có ý tưởng thế này: ta sẽ duyệt tất cả các điểm trong hình chữ nhật, nếu điểm nào có màu đen thì ta vẽ lại thành màu trắng, còn các điểm có màu khác thì bỏ qua. Vì mới làm quen với VC nên ko biết nó có lệnh nào lấy màu và tô màu cho từng điểm không, seach mãi mà vẫn chưa ra. Ai biết chỉ giùm với. Cám ơn nhiều
    Hàm lấy màu và tô màu thì có (SetPixel và GetPixel). Nhưng một hình chữ nhật có rất nhiều điểm, bạn làm với từng điểm như vậy là rất chậm, ko tối ưu. Mình nghĩ nên dùng cách khác.

    Mình nghĩ ý tưởng này, khi người ta kéo rê chuột thì ta có thể vẽ một hình chữ nhật mới đại diện cho vùng lựa chọn với kiểu vẽ là Invert chẳng hạn. Nhưng nếu như thế thì cả màu nền cũng đổi theo.
    pEnGwINUS.

  4. #4
    Ngày gia nhập
    09 2006
    Nơi ở
    Sơn La
    Bài viết
    11

    Cám ơn các bạn đã góp ý kiến
    Thay vì vẻ nguyên hình chử nhật, tại sao bạn không vẻ bốn đường thẳng!
    Nếu chỉ vẽ 4 đường thẳng ko thôi thì ko được trực quan cho lắm
    Hàm lấy màu và tô màu thì có (SetPixel và GetPixel). Nhưng một hình chữ nhật có rất nhiều điểm, bạn làm với từng điểm như vậy là rất chậm, ko tối ưu. Mình nghĩ nên dùng cách khác.
    Đúng như bạn nói là thao tác trên điểm rất chậm, mặt khác nữa là, tớ chỉ muốn thay đổi màu nền thôi, mà cái màu lày là background lên dùng hàm GetPixel ko lấy được màu của nó => Ý tưởng của tớ đã thất bại
    Mình nghĩ ý tưởng này, khi người ta kéo rê chuột thì ta có thể vẽ một hình chữ nhật mới đại diện cho vùng lựa chọn với kiểu vẽ là Invert chẳng hạn. Nhưng nếu như thế thì cả màu nền cũng đổi theo.
    Bạn có thể nói rõ hơn về ý tưởng trên ko, vì tớ tự mò mẫm trong VC nên ko hiểu sâu về đồ hoạ nên rất mù mờ. Tớ cũng đã vẽ một hình chữ nhật theo sự kiện kéo rê chuột rùi nhưng nó che tất cả những gì tớ vẽ trước đó.
    Bạn nào có ý tưởng gì thì cứ góp ý cho mình nhé
    Thanks nhiều!

  5. #5
    Ngày gia nhập
    09 2006
    Bài viết
    711

    SelectObject NULL_BRUSH vào DC vẽ.

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Mặc định Vẽ một hình chữ nhật trong suốt

    Bạn ấy thích làm hình chữ nhật cho nó trực quan & đẹp mắt.
    Không hẳn. Nếu nói mục đích là hướng đối tượng thì đúng hơn. Vì nếu vẽ 4 đoạn thẳng thì lỡ sau này phát triển việc kéo, thay đổi kích thước thì làm sao ?

    Hàm lấy màu và tô màu thì có (SetPixel và GetPixel). Nhưng một hình chữ nhật có rất nhiều điểm, bạn làm với từng điểm như vậy là rất chậm, ko tối ưu.
    Vậy xin hỏi bạn chứ C++ nó tô, vẽ theo kiểu nào ? Không setPixel thì là gì ? Có khác chăng là nó dùng algo tốt nên vẽ nhanh thôi.

    Rgs.
    Keep moving forward!

    ... Retired ...

  7. #7
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Vậy xin hỏi bạn chứ C++ nó tô, vẽ theo kiểu nào ? Không setPixel thì là gì ? Có khác chăng là nó dùng algo tốt nên vẽ nhanh thôi.
    SetPixel và GetPixel mà dùng để xử lí đồ họa thì chậm lắm bạn ơi, ko ai dùng đâu. Người ta thường dùng DirectX và OpenGL.

    Cho bạn thấy tầm quan trọng của công nghệ xử lí đồ họa. Ví dụ với Windows Vista, nếu bạn để chế độ giao diện là Vista Basic thì Windows xử lí đồ họa theo kiểu DirectX Draw (2D) nên khi kéo cửa sổ ta thấy có vệt theo sau. Còn dùng giao diện Windows Aero, nó dùng DirectX 3D nên kéo cửa sổ ko bao giờ có vệt theo sau.
    pEnGwINUS.

  8. #8
    Ngày gia nhập
    09 2006
    Nơi ở
    Sơn La
    Bài viết
    11

    SelectObject NULL_BRUSH vào DC vẽ
    Bạn có thể nói rõ hơn được ko. Vì tui dùng thấy nó báo lỗi ngay

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

  1. Bài tập C++ Vẽ hình chữ nhật rỗng trong lập trình C
    Gửi bởi materazzi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 17
    Bài viết cuối: 03-05-2014, 05:49 PM
  2. Graphic Vẽ hình chữ nhật trong picturebox C# có được không?
    Gửi bởi quannguyen91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 25-10-2012, 07:58 PM
  3. Khử nhấp nháy vẽ hình trong lập trình C#?
    Gửi bởi laksjd8979343 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 01-11-2011, 02:14 PM
  4. Vẽ hiệu ứng quanh viền chữ nhật trong VC++?
    Gửi bởi GameCoder trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 07-08-2011, 07:52 PM
  5. Vẽ hình chữ nhật bằng rê chuột trong lập trình C#
    Gửi bởi galatasaray trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 29-03-2011, 04:20 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