Giới thiệu
Một hypercube / tesseract là tương đương 4 chiều của một khối bình thường. Nó được tạo ra bằng cách lấy một mạng lưới hình khối, mở rộng nó sang chiều thứ 3, sau đó - sử dụng chiều thứ 4 - gấp nó thành một hypercube. Về cơ bản, nó là một khối lập phương, trong đó mỗi bên là một khối lập phương.
Để tạo một hypercube, bạn cần 16 vectơ 4d (một vectơ có thành phần x
a y
, a, a z
và một w
thành phần). Các vectơ này như sau:
A(0, 0, 0, 0); B(1, 0, 0, 0); C(1, 0, 1, 0); D(0, 0, 1, 0); E(0, 1, 0, 0); F(1, 1, 0, 0); G(1, 1, 1, 0); H(0, 1, 1, 0);
I(0, 0, 0, 1); J(1, 0, 0, 1); K(1, 0, 1, 1); L(0, 0, 1, 1); M(0, 1, 0, 1); N(1, 1, 0, 1); O(1, 1, 1, 1); P(0, 1, 1, 1);
Hypercube có 24 khuôn mặt. Danh sách sau đây chứa tất cả chúng (mỗi nhóm đánh dấu một phần tư):
ABFE, CDHG, BCGF, DAEH, DCBA, FEHG
IJNM, KLPO, JKON, LIMP, LKJI, PMNO
ABJI, DCKL, BCKJ, DAIL, FEMN, GHPO, FGON, EHPM, EAIM, BFNJ, CGOK, HDLP
Với tất cả các thông tin này, về mặt kỹ thuật, bạn có một hypercube trong mã. Để xoay cái này, bạn cần 6 ma trận khác nhau cho mỗi mặt phẳng quay, một cho các mặt phẳng YZ, XZ, XY, XW, YW và ZW. Sau khi bạn có mọi ma trận, bạn cần nhân các đỉnh của khối lập phương với chúng.
Các hình ảnh sau đây cho thấy cấu trúc của từng ma trận:
Đối với vòng quay trên mặt phẳng YZ:
Đối với phép quay trên mặt phẳng XZ:
Đối với phép quay trên mặt phẳng XY:
Đối với phép quay trên mặt phẳng XW:
Đối với phép quay trên mặt phẳng YW:
Đối với phép quay trên mặt phẳng ZW:
Các phép quay được áp dụng theo thứ tự này.
Sau khi tất cả điều này, bạn có một hypercube xoay. Bây giờ bạn cần vẽ nó. Bạn nên sử dụng phép chiếu trực giao kết hợp với phép chiếu phối cảnh để gửi (x, y, z, w)
tới (2x/(2+z), 2y/(2+z))
.
Đầu vào
Đầu vào của bạn là 6 số nguyên từ 0 (bao gồm) và 360 (độc quyền). Chúng đại diện cho các phép quay theo độ trên các mặt phẳng quay khác nhau của hypercube.
Đầu ra
Đầu ra của bạn phải là một hình ảnh duy nhất chứa hypercube. Màn hình có thể là hình ảnh rasterized, hình ảnh vector hoặc nghệ thuật ASCII. Hình ảnh đầu ra phải có ít nhất 100 * 100 pixel và khối lập phương cần chiếm ít nhất 50% màn hình. Bất kỳ định dạng đầu ra hình ảnh mặc định được cho phép.
Các trường hợp thử nghiệm
0 0 0 0 0 0
0 0 0 0 0 30
30 0 0 0 0 30
0 0 0 30 30 30
45 45 45 0 0 0
45 45 45 45 45 45
Mở hình ảnh trong một tab mới, để xem chúng ở kích thước đầy đủ.
Quy tắc
- Quy tắc mặc định được áp dụng
- Sơ hở tiêu chuẩn bị cấm
- Mã ngắn nhất tính bằng byte thắng