Tôi đang cố gắng tìm tất cả các điểm có tọa độ nguyên nằm bên trong một tứ diện (tôi muốn bằng cách nào đó có thể lặp qua chúng). Tôi biết tọa độ của bốn điểm (A, B, C, D) xác định tứ diện.Tìm tất cả các điểm có tọa độ nguyên bên trong tứ diện
Điều tôi đang làm là tìm hộp giới hạn của tứ diện (các tọa độ x, y, z tối thiểu và lớn nhất của A, B, C, D) và sau đó thực hiện vòng lặp qua tất cả các điểm bên trong hộp giới hạn. Đối với mỗi điểm như vậy, tôi tính toán tọa độ barycentric (sử dụng the equations from Wikipedia) và kiểm tra xem điểm có nằm trong tứ diện (nếu bất kỳ tọa độ barycentric nào là âm hay lớn hơn 1, điểm không nằm trong).
Có cách nào tốt hơn để thực hiện việc này không? Hiện nay có khoảng 1/6 cơ hội mà điểm tôi đang thử nghiệm (từ hộp giới hạn) thực sự nằm bên trong tứ diện, vì vậy tôi nghĩ rằng tôi đang làm quá nhiều tính toán không cần thiết.
Tôi đang làm việc với danh sách tứ diện mà tôi tạo ra bằng cách triangulating một khối lượng lớn hơn (tôi đang mở rộng khối lượng và muốn nội suy các giá trị bị thiếu bằng cách sử dụng nội suy tứ diện). Tôi không sử dụng bất kỳ thư viện bên ngoài nào.
Bạn cũng có thể chia tỷ lệ phương trình phẳng sao cho giá trị của $ F $ bằng 0 trên mặt phẳng và 1 ở đỉnh đối diện. Bằng cách đó tất cả các điểm hợp lệ có $ 0 <= F (x, y, z) <= 1 $ - có nghĩa là bạn có thể loại bỏ nhiều điểm hơn cho mỗi mặt phẳng. –