Ánh xạ một kết cấu lên một tam giác hyperbol


9

Tôi đã bế tắc về cách tiếp cận điều này trong một thời gian, vì vậy mọi đề xuất sẽ được đánh giá cao!

Tôi muốn ánh xạ một kết cấu dưới dạng một tam giác euclide bên phải thấp hơn thành một tam giác hyperbol trên Đĩa Poincare.

Đây là kết cấu (hình tam giác trên cùng bên trái của kết cấu trong suốt và không được sử dụng). Bạn có thể nhận ra đây là một phần của Giới hạn vòng tròn của Escher's

Xin lỗi, xem bình luận vì tôi không được phép đăng nhiều hơn hai liên kết!

Và đây là hình đa giác của tôi (nằm ở trung tâm gốc, có nghĩa là hai cạnh là các đường thẳng, tuy nhiên nói chung cả ba cạnh sẽ là các cung tròn):

Đa giác khung

Trung tâm của đa giác là sự khuyến khích của tam giác euclide được hình thành bởi các đỉnh của nó và tôi đang ánh xạ UV kết cấu bằng cách sử dụng nó, chia nó thành cùng một số mặt như đa giác có và ánh xạ mỗi mặt vào mặt đa giác tương ứng. Tuy nhiên, kết quả trông như thế này:

Kết cấu đa giác

Nếu bất cứ ai nghĩ rằng điều này có thể giải quyết được bằng cách sử dụng ánh xạ UV, tôi rất vui lòng cung cấp một số mã ví dụ, tuy nhiên tôi bắt đầu nghĩ rằng điều này có thể không thực hiện được và tôi sẽ phải viết các chức năng ánh xạ của riêng mình.

GIẢI QUYẾT với một số sàng lọc câu trả lời của @ Nathan bên dưới vì các dòng AB, AC, BC thực sự có thể là các cung không phải là các dòng.

Phương pháp: chọn cạnh dài nhất, nói BC, sau đó chia phần này thành số chẵn. Chia hai bên còn lại thành cùng một số phần. Thì các đường nối giữa chúng (DE trong câu trả lời bên dưới) thực sự cũng phải là cung tròn, không phải đường thẳng. Chia nhỏ các cung mới này theo yêu cầu, thêm các hình tam giác mới làm mặt sau đó ánh xạ UV vào tam giác bên phải phía dưới của kết cấu cho các mặt mới này.

Đơn giản? Không có gì. Nhưng nó đã làm việc. Cá 1 Cá 2


Đây là kết cấu tôi đang sử dụng: i.stack.imgur.com/SEi0G.png
Lewy Blue

1
Tôi giả sử vấn đề là sự cắt của hình ảnh? Tôi thấy điều này xảy ra khi bạn có khoảng cách không nhất quán giữa các đỉnh của phân khu tam giác. Tôi đoán là bạn đang sử dụng các bước nhất quán cho ánh xạ uv của bạn, mang lại cho bạn hiệu ứng cắt.
Daniel M G Tàu

Tôi thực sự đã sửa nó ngay sau khi đăng bài này bằng cách làm cho các phân mục nhất quán và nhỏ hơn, nó sửa chữa phần nào sự cắt (mặc dù không hoàn toàn). Tuy nhiên kết cấu vẫn rất méo. Tôi đang làm việc với đề xuất @nathan dưới đây, ít nhất sẽ cho phép phân chia tốt hơn nhiều.
Lewy Blue

1
@Looeee Bạn có thể vượt qua mã của mình không, tôi rất thích lĩnh vực đồ họa này
x-rw

Có, bạn có thể tìm thấy mã của tôi ở đây: github.com/looeee/blackthread-heroku/tree/master/assets/js/src/... phiên bản Và sống: blackthread.io/experiments/eschersketch Thành thực mà nói, đó là quá lâu kể từ khi tôi nhìn tại đây tôi không thể nhớ vị trí của các hàm giải quyết vấn đề này ở đâu, nhưng nếu bạn gặp khó khăn trong việc hiểu ý nghĩa của nó, hãy gửi cho tôi một bình luận khác ở đây và tôi sẽ xem xét.
Lewy Blue

Câu trả lời:


8

Tôi đoán là để có được kết cấu phù hợp, bạn cũng sẽ phải chia nhỏ phần bên trong của hình tam giác, và xấp xỉ ánh xạ UV phi tuyến tính bên trong nó.

Hiện tại, có vẻ như bạn đang phân chia xung quanh các cạnh của hình tam giác và tạo thành một fan hâm mộ của các hình tam giác nhỏ hơn giữa cạnh và bên trong. Điều này sẽ ổn nếu bạn chỉ vẽ hình tam giác bằng một màu đơn sắc. Nhưng khi áp dụng một kết cấu, bạn sẽ nhận được sự không liên tục ở ranh giới của các phân khu đó, bởi vì kết cấu chỉ được kéo dài tuyến tính trên mỗi tam giác được phân chia và không xấp xỉ chính xác ánh xạ hyperbol theo hướng xuyên tâm.

Bạn sẽ cần chia nhỏ dọc theo cả hai trục, đại loại như thế này:

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

và định vị tất cả các đỉnh một cách thích hợp trong không gian màn hình và không gian UV để xấp xỉ các tọa độ hyperbol trong phần bên trong của tam giác. Nếu bạn chia nhỏ đủ, điều này sẽ tạo ra ảo ảnh của ánh xạ kết cấu cong liên tục.


1
Cảm ơn, tôi sẽ thử nó. Đó là một trong những phương pháp ban đầu của tôi để xây dựng đa giác, tuy nhiên về mặt toán học phức tạp hơn nhiều nên tôi đã sử dụng phương pháp đơn giản hơn. Tôi sẽ cung cấp cho nó một shot khác và báo cáo lại.
Lewy Blue

Cảm ơn bạn. Tôi đã có thể sửa đổi đề nghị của bạn thành một giải pháp. Xem chỉnh sửa của tôi ở trên.
Lewy Blue
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.