Tôi đã tự hỏi nếu có ai biết một thư viện tốt cho tessellating một máy bay hyperbolic với đa giác (quan tâm chính của tôi nằm trong {8,3} tessellation). Tôi tìm thấy một số applet ở đây và ở đó, nhưng tách logic từ xem là khủng khiếp trong tất cả chúng. Nó sẽ là hoàn hảo nếu có một thư viện mà không xử lý đồ họa ở tất cả (vì tôi KHÔNG lập kế hoạch sử dụng Swing hoặc tạo applet của riêng tôi), chỉ cần tham số: {p, q} và số lượng lớp, sau đó trả về một mảng các dòng hoặc các điểm (hoặc các đối tượng đa giác). Nếu tồi tệ nhất đến tồi tệ nhất, tôi sẽ phải thực hiện thư viện của riêng tôi, vì vậy nó cũng có thể hữu ích nếu ai đó biết về một số giấy mô tả chi tiết thuật toán cho tessellation.Tessellation hyperbolic thư viện Java
EDIT
Bằng cách này, tôi nên đã nói rằng tôi tìm thấy một mát-looking hyperbolic tessellations applet bởi Don Hatch và bị kích thích lúc đầu. Sau đó, tôi nhìn vào những gì ông tuyên bố là source code. Bên trong JAR, tôi đã phát hiện ra các tệp có phần mở rộng là .prejava
và hoàn toàn không có ý tưởng về những gì tôi đang xem - nó dường như là một sự kết hợp khủng khiếp của mã Java và C. Khi cố gắng kiểm tra chặt chẽ hơn, tôi đã ngay lập tức được khen thưởng với một cơn đau đầu. Rõ ràng anh ta đang cố gắng tối ưu hóa trình biên dịch Java ... hoặc ít nhất đó là những gì tôi thu thập được từ việc xem xét nội dung của javacpp
. Không cần phải nói, tôi cực kỳ do dự để dành thời gian của tôi theo hướng dẫn của mình để tạo các tệp nguồn Java bằng trình biên dịch C, ...
Đầu tiên, cảm ơn câu hỏi này - Tôi có nhu cầu tương tự. Ngoài ra, tôi biết bài viết này là cũ, nhưng tôi muốn chỉ ra cho độc giả trong tương lai mà nhận được mã nguồn của Don Hatch để biên dịch không phải là khó khăn. 'javacpp' chỉ là một tập lệnh perl chạy bộ tiền xử lý C trên các tệp .prejava để tạo các tệp .java bình thường. Tất cả những gì anh ta làm là cho phép sử dụng C#defines, #ifdefs, v.v., đó là những tính năng tốt đẹp để có. (Không có gì để làm với tối ưu hóa.) Nếu bạn có 'make',' perl', và 'cpp', bạn chỉ cần chạy' make' và tất cả đều biên dịch liền mạch. – LarsH
Tuy nhiên tôi sẽ thêm rằng sự tách biệt giữa logic và xem có thể không tương ứng với những gì bạn cần. Hatch thực hiện tất cả mọi thứ về các phân đoạn đường thẳng, đó là nửa cạnh của các đa giác được lát gạch. Các phân đoạn đường này không được nhóm thành các đa giác hoặc thậm chí thành các cạnh đa giác. Vì vậy, nếu bạn cần phải làm những điều về đa giác, hoặc nhân rộng "họa tiết" (ví dụ như cá Escher), bạn có thể thấy khó có thể lấy từ mã của Hatch đến những gì bạn cần. Tuy nhiên, mã của anh ấy có vẻ hiệu quả nhất. – LarsH