Kiểm tra xem một tứ diện có nằm trong khối đa diện không


15

Tôi có một tứ diện và một khối đa diện . bị ràng buộc sao cho nó luôn chia sẻ tất cả các đỉnh của nó với . Tôi muốn xác định xem nằm bên trong .t ptpt p

Tôi muốn thêm một chi tiết cho vấn đề trong trường hợp nó có thể đóng góp cho giải pháp: là một tứ diện Delaunay và các mặt của là hình tam giác và mạnh mẽ Delaunay cả về các đỉnh của . Một khối tứ diện là Delaunay nếu chu vi các đỉnh của nó không chứa đỉnh khác bên trong nó. Một mặt rất mạnh Delaunay nếu tồn tại một vòng tròn chứa các đỉnh của mặt đó trên bề mặt của nó nhưng không có đỉnh khác trên hoặc bên trong nó.tpp

Các số liệu sau đây cho thấy vấn đề tương tự trong không gian : 2D

Đa giác gốcp :

nhập mô tả hình ảnh ở đây

Delaunay tam giác các đỉnh củap :

nhập mô tả hình ảnh ở đây

Kết quả kiểm tra bên trong / bên ngoài qua các hình tam giáct (Hình tam giác được tô bên trong và phần còn lại nằm bên ngoài ):p

nhập mô tả hình ảnh ở đây

Kết quả mong muốn (cắt tỉa hình tam giác bên ngoài ) :

nhập mô tả hình ảnh ở đây


Vấn đề ban đầu của tôi là trong không gian 3D, vì vậy các tam giác trong các hình trên chuyển thành tứ diện và đa giác chuyển thành một khối đa diện tùy ý . Tôi đã tìm ra một số công thức của vấn đề này:tpp

Xây dựng 1
Các bộ phận duy nhất của mà có thể là bên ngoài là các cạnh của nó và khuôn mặt hình tam giác nhưng nhìn chung có thể tồn tại một mà có các gờ của tất cả các bên ngoài là trên bề mặt của nó, vì vậy cách khác, vấn đề này cũng có thể được xây dựng như để kiểm tra xem một tứ diện có tồn tại một mặt nằm ngoài không?tpp tt p

Công thức 2
Tôi có một quan điểm khả dĩ khác đối với vấn đề này nhưng thiếu bất kỳ ý tưởng chính thức nào: Về mặt hình
học, nếu ở bên ngoài thì nó sẽ luôn bám trên bề mặt ngoài của . Vì vậy, nếu chúng ta có thể tính các đường đồng mức (không chính thức, ranh giới bên ngoài) và sao cho và là các đỉnh trong tương ứng, sau đó iff nằm bên trong . tpCVCVpV= =VtVpVt,Vpt,pCV= =CVp tp

Tôi muốn biết:

  • Làm cách nào tôi có thể giải quyết Công thức 1 hoặc Công thức 2 ?
  • Hoặc, có cách tiếp cận hoàn toàn khác để giải quyết điều này?

Cập nhật:
Bây giờ tôi nhận ra rằng vấn đề này có thể được giảm xuống thành Điểm trong vấn đề đa diện . Vì một tứ diện bên ngoài sẽ có ít nhất một mặt nằm bên ngoài , do đó, bất kỳ điểm tùy ý nào trên mặt đó (ngoại trừ các đỉnh của nó, nói chung) sẽ luôn nằm bên ngoài . Do đó, đối với mỗi mặt của , tôi cần lấy một điểm tùy ý và kiểm tra xem điểm đó có nằm ngoài .tp pt p

Từ điểm trong bài viết đa giác tôi đã biết về thuật toán đúc Raythuật toán số Winding . Đúc tia không ổn định về số đối với các trường hợp điểm nằm trên bề mặt . Nhưng sự mạnh mẽ về số của thuật toán số Winding chưa được đề cập ở đó. p

Dựa trên, vấn đề cốt lõi của tôi bây giờ dường như là (xin đề nghị nếu nó nên được hỏi dưới dạng một câu hỏi riêng biệt):
Có thuật toán nào mạnh về số cho điểm trong vấn đề đa giác không?


Chỉ cần làm rõ: 1) đa diện có thể là không lồi, và 2) nếu và chia sẻ một khuôn mặt hay một cạnh (hoặc một phần một), làm thế không đủ điều kiện từ là "bên trong" của ? (Rõ ràng, dựa trên yêu cầu của bạn, và phải được phép chia sẻ các đỉnh.)ptptptp
Ilmari Karonen

@IlmariKaronen 1) Có 2). Không, theo như tôi có thể tưởng tượng, sự khác biệt duy nhất giữa tứ diện bên trongbên ngoài sẽ là mặt / cạnh không chia sẻ của nó sẽ nằm bên ngoài nếu ở bên ngoài và bên trong nếu ở bên trong (như tôi cũng đã đề cập trong Công thức 1 ). BTW, ý của bạn là "... hoặc là một phần của một ..."? tptp
Pranav

1
p

1
không lồi có một điểm kỳ lạ là tất cả các đỉnh có thể nằm bên trong khối đa diện và tứ diện có thể ở bên ngoài (vì một cạnh không cần nằm bên trong toàn bộ). Thuật toán có thể, xem các cạnh (giữa khối đa diện và tứ diện) có thể có giao điểm => thăm dò rằng tứ diện nằm bên ngoài là tuyệt vời
Nikos M.

1
Bạn đã thấy thuật toán khoảng cách GilbertTHER JohnsonTHER Keerthi chưa? Trước tiên, bạn cần phân tách đa giác / đa diện thành các hình lồi (như bạn đã lưu ý, một phức hợp đơn giản sẽ thực hiện công việc). GJK được biết là rất ổn định và rất nhanh.
Bút danh

Câu trả lời:


2

Gần đây tôi đã tìm thấy một giải pháp cho vấn đề này trong một bài báo 'Phân đoạn bên trong mạnh mẽ bằng cách sử dụng các số quanh co tổng quát' của Alec Jacobson et.al., ở đây . Nó giải quyết vấn đề định vị nếu một điểm nằm bên trong (hoặc bên ngoài) một điểm tùy ý (một điểm có giao điểm tự, không đa tạp, bề mặt mở, v.v.) bằng cách sử dụng khái niệm số cuộn dây tổng quát .

tp


ptpptppttp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.