Sau một hoạt động biến dạng trên đa giác, làm thế nào tôi có thể kiểm tra và sửa chữa các polys đảo ngược?


7

Tôi đang thực hiện một thói quen biến dạng tự động nhanh chóng và bẩn thỉu trên cơ thể đa giác. Nếu đó là một cái cây và trục của tôi nằm ở trung tâm của cây, tôi muốn uốn cong thân cây bằng cách uốn cong trục. Tôi sẽ sử dụng một thuật toán ảnh hưởng đơn giản để xác định độ dịch chuyển xyz điểm đỉnh.

Về phía lõm của uốn cong, làm cách nào tôi có thể kiểm tra các đa giác đã chồng chéo hoặc truyền qua nhau và làm cách nào tôi có thể sửa các đa giác đó?

Cảm ơn bạn!

Minh họa thô của khái niệm


Bạn có thể thêm một lưới ví dụ và cách nó được biến đổi không? Nếu bạn thực sự di chuyển các đỉnh chứ không phải các đa giác riêng lẻ, tôi không chắc tại sao chúng lại đi qua nhau từ một thao tác uốn đơn giản. Không phải các đa giác ở phía lõm chỉ co lại một chút sao?
Martin Ender

@ MartinBüttner Bằng âm thanh của nó, anh ấy / cô ấy sẽ gặp vấn đề tương tự như khi thực hiện các đường cong bù khi độ lệch vượt quá bán kính cong. ví dụ: nhìn vào tập hợp các đường cong màu xanh lá cây đã bị dịch chuyển quá xa so với màu đỏ.
Simon F

Dường như với tôi các dòng chủ đề hỏi về tính toán lại các quy tắc trong khi cơ thể hỏi về giao điểm tự.
joojaa

1
Tôi xin lỗi, chủ đề và cơ thể của tôi không mạch lạc. Điều này là do tôi không chắc chắn về thuật ngữ chính xác để sử dụng. Tôi nghĩ Simon F đã giải thích câu hỏi của tôi như tôi dự định; Tôi cần tìm ra cách xử lý tình huống mà phần bù vượt quá bán kính cong. Tôi sẽ tải lên một bản phác thảo trong giây lát.
dùng35 31082

À vâng, thực sự không có gì bạn có thể làm về loại điều này ngoại trừ không uốn cong quá nhiều.
joojaa

Câu trả lời:


2

Nếu bạn có lưới tam giác định hướng ( ví dụ bề mặt không định hướng sẽ là Dải Moebius ), bạn có thể kiểm tra đảo ngược tam giác bằng cách nhìn vào vùng tam giác đã ký . Vùng đã ký là dương khi các đỉnh theo thứ tự CCW và âm nếu chúng theo thứ tự CW. Nếu các đỉnh tam giác của bạn đều được sắp xếp trong CCW thì tất cả các tam giác có diện tích âm sẽ được đảo ngược. Khắc phục điều đó phụ thuộc vào kỹ thuật biến dạng, tôi không biết trường hợp của bạn.

Kiểm tra tự giao có liên quan nhiều hơn. Bạn thực sự nên thực hiện Phát hiện va chạm của lưới với chính nó. Phát hiện va chạm là nhanh nhưng cần thực hiện các cấu trúc dữ liệu phù hợp như AABB Tree để thu hẹp số lượng thử nghiệm giao nhau tam giác. Phát hiện va chạm thường được thực hiện bằng cách sử dụng phiên bản rất thấp của các mắt lưới. Trong một số trò chơi trên máy tính, hệ thống phân cấp âm lượng giới hạn (hình cầu, AABB, v.v.) gần đúng với lưới là thứ duy nhất được xem xét cho sự va chạm, không có lưới.

Khi một vụ va chạm được phát hiện, có một số cách để phản ứng, chẳng hạn như áp dụng lực nảy, là phổ biến.

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.