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

Đề tài: Tô màu phần giao nhau của 2 hình chữ nhật trong lập trình C#

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

    Smile Tô màu phần giao nhau của 2 hình chữ nhật trong lập trình C#

    - Đầu tiên, bạn tạo ra 1 project dạng "Windows Forms".
    - Kế đến, bạn thụ lý tình huống Paint của Form chính như sau:
    Visual C# Code:
    1.         private void Form1_Paint(object sender, PaintEventArgs e)
    2.         {
    3.             // thiết kế 2 hình chữ nhật
    4.             Rectangle rect1 = new Rectangle(50, 50, 50, 50);
    5.             Rectangle rect2 = new Rectangle(70,70,170,170);
    6.             //vẽ 2 hình chữ nhật lên Form
    7.             e.Graphics.DrawRectangle(Pens.Red, rect1);
    8.             e.Graphics.DrawRectangle(Pens.Blue, rect2);
    9.  
    10.             if (rect1.IntersectsWith(rect2)) //xác định xem hình chữ nhật 1 có giao với hình chữ nhật 2 hay không?
    11.             {
    12.                 // nếu có giao nhau
    13.                 // tìm ra phần giao của 2 HCN trên
    14.                 rect1.Intersect(rect2);
    15.                 //sau đó tô màu vùng giao này
    16.                 e.Graphics.FillRectangle(Brushes.Green, rect1);
    17.             }
    18.         }

    Tất nhiên, bạn cũng có thể tô màu phần giao với các dạng hình bất kỳ nè.

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

    Cho hỏi câu nhé: làm sao để thụ lý Form_Paint mình không biết, mình chỉ biết Form_Load thôi, xin lỗi vì hơi kém cõi nhé. Thanks

  3. #3
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi BuithiHa Xem bài viết
    Cho hỏi câu nhé: làm sao để thụ lý Form_Paint mình không biết, mình chỉ biết Form_Load thôi, xin lỗi vì hơi kém cõi nhé. Thanks
    Ở cửa sổ Properties của Form chính, nhấn vào nút có hình tia sét (Events) á

    Sau đó, tìm đến Paint, sau đó nhắp đúp chuột vào ô textbox

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

    ừ, hay đấy. nhưng bây giờ tui muốn bắt sự kiện Click vào phần giao của hình chữ nhật. Ví dụ: Khi tui Click vào phần giao đó thì xuất hiện một thông báo:
    Code:
    MessageBox.Show("Đây là phần giao của hai hình chữ nhật");
    thì làm thế nào để bắt được chuột nhỉ?
    Việt Nam quang vinh muôn năm!!!!!!!!!!!!

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    _Giao nhau của 2 HCN là 1 HCN trong đó có 4 điểm được xác định bởi :
    + 2 đỉnh là giao của 2 HCN ban đầu
    + 2 đỉnh còn lại , mỗi cái là một đỉnh của một HCN ban đầu ( cách xác định : lấy đỉnh này thay vào phương trình HCN kia nếu nhỏ hơn thì đó là điểm cần tìm )

    -> cái này ở phổ thông học chán rồi thì phải
    None!

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

    Arrow Tô màu phần giao nhau của 2 hình chữ nhật trong lập trình C#

    Trích dẫn Nguyên bản được gửi bởi pete_87 Xem bài viết
    _Giao nhau của 2 HCN là 1 HCN trong đó có 4 điểm được xác định bởi :
    + 2 đỉnh là giao của 2 HCN ban đầu
    + 2 đỉnh còn lại , mỗi cái là một đỉnh của một HCN ban đầu ( cách xác định : lấy đỉnh này thay vào phương trình HCN kia nếu nhỏ hơn thì đó là điểm cần tìm )

    -> cái này ở phổ thông học chán rồi thì phải
    ừa, nhưng tui muốn nói về việc bắt chuột kia mà, bây giờ làm thế nào dể bắt được sự kiện chuột Click vào khu vực giao của hai HCN mà chúng ta đã tô màu ấy
    Việt Nam quang vinh muôn năm!!!!!!!!!!!!

  7. #7
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    _Cái này dùng trick một tẹo, vẽ ngay một HCN đè lên cái phần giao nhau đó. Nhưng để invisible hoặc transparent cũng được sau đó xử lý event thôi.
    None!

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    Đà Nẵng
    Bài viết
    41

    Sao lại bắt sự kiện form_paint ,Nếu mà bình thường mà mình muốn vẽ phải làm sao .

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

  1. Nhập mảng, các phần tử không trùng nhau
    Gửi bởi dibo_ngaodu94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 06-07-2013, 01:55 PM
  2. Bài tập giải thuật Tính diện tích phần giao, không giao nhau của 2 Hình chữ nhật
    Gửi bởi ntk2991 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 1
    Bài viết cuối: 27-02-2013, 11:18 PM
  3. Bài tập C++ Nhập mảng 1 chiều, nếu phần tử nhập trùng nhau thì bắt nhập lại
    Gửi bởi danielh 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: 09-07-2011, 03:35 PM
  4. Thủ tục loại bỏ các phần tử trùng nhau, giữ lại duy nhất 1 phần tử trong DSLK
    Gửi bởi mrtyoffline 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: 02-03-2011, 10:27 PM
  5. Kỹ thuật C++ Thuật toán tính diện tích phần mặt phẳng giao nhau giữa hai đường tròn
    Gửi bởi ncptbl trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 25-12-2010, 08:53 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