30/09/2018, 23:13

Xét va chạm trong Java

Các bác cho em hỏi là xét va chạm giữa 1 hình vuông và hình tam giác như hình kia trong java thì làm thế nào ạ?
Thanks các bro.

Ai Android viết 01:20 ngày 01/10/2018

cho tất cả các trường hợp thì bạn xét xem có 2 cạnh nào cắt nhau ko
p/s1: Cắt hoặc trùng nhau => va chạm
p/s2: cạnh (đoạn thẳng) # đường thẳng chứa cạnh

Phương Trọng Lê viết 01:25 ngày 01/10/2018

Cái này đơn giản thôi, phải xét 2 trường hợp:
Trường hợp 1 là xét xem các đỉnh của hình vuông có nằm trong tam giác không, để biết đỉnh có nằm trong tam giác không thì có CT sau. Giả sử P 1 đỉnh của hình vuông, P0, P1, P2 là 3 đỉnh của tam giác, P thuộc tam giá khi P = P0 + s(P1-P0) + t(P2-P0), trong đó s>=0, t>=0, s+t<=1
Trường hợp 2 là xét ngược lại, xét 3 đỉnh của tam giác có nằm trong hình vuông hay không, cái này đơn giản hơn, có 2 cách xét, cách 1 xét 1 đỉnh có bị giới hạn bởi 4 cạnh hay không, cách 2 chia hình vuông thành 2 tam giác và xét y chang trên.

Phương Trọng Lê viết 01:25 ngày 01/10/2018

Trả lời vậy cũng như không, vậy làm sao biết được nó cắt hoặc trùng nhau

Ai Android viết 01:28 ngày 01/10/2018

nếu nhớ ko nhầm thì đó là bài toán cơ bản mà bác :)) còn bác ko rõ thì mình có thể google hộ
còn cách bác nói thì phức tạp quá mức cần thiết =))

  1. xây 1 object đoạn thẳng, => đường thẳng có giới hạn bởi 2 point
  2. Xây 1 hàm trả về 1 object đoạn thẳng từ 2 điểm
  3. xây 1 hàm xét 2 đoạn thẳng có cắt nhau ko =>
    tìm giao điểm 2 đường thẳng
    xét xem có năm giữa 4 point giới hạn ko
  4. xét từng cặp cạnh của 2 đa giác
Phương Trọng Lê viết 01:29 ngày 01/10/2018

Này nhá, 1 bài chỉ cần thông tin 3 điểm của tam giác và áp dụng vào công
thức giải hệ pt tìm s, t, xong so sánh điều kiện s, t là ra, 1 bài vừa
phải viết pt đoạn thẳng, vừa xét trường hợp các cặp cạnh, vừa phải giải
hệ pt để tìm giao điểm, vậy cái nào sẽ phức tạp và tốn kém hơn, chưa
tính tới 1 số trường hợp đặc biết ngoài ý mún có thể gặp phải

Ai Android viết 01:23 ngày 01/10/2018

Nói thế thì mình chịu rồi
ghóp ý bác tí cách của bác ko đúng đâu

Phương Trọng Lê viết 01:15 ngày 01/10/2018

không đúng chổ nào bạn nói xem nếu đúng mình sẵn sàng ghi nhận, mình viết engine và đã áp dụng cái này vào engine của mình rồi, và nó vẫn phát hiện tốt, không có vấn đề gì xảy ra cả

Ai Android viết 01:19 ngày 01/10/2018

:v lên đây trao đổi cho vui thôi =)) đừng căng thẳng thím nhé ko là mình thông như trong hình đó =))
Nghiêm túc thi thế này:
Bác làm ko gặp tại vì xét theo từng frame thì có thể trường hợp bác xét nó sẽ báo va chạm trước khi trường hợp này xảy ra nhưng lỡ như … nhìn hình chắc bác hiểu

Phương Trọng Lê viết 01:23 ngày 01/10/2018

Nếu bác để sẵn 1 trường hợp mặc định kiểu vậy thì mình chịu, ok cám ơn bác

Bài liên quan
0