Là một fan hâm mộ lớn của khối Rubik và nghệ thuật tuyệt vời, tôi đã làm việc kết hợp cả hai lại với nhau để làm một số thứ thực sự tuyệt vời. Về cơ bản giải quyết các khối Rubik thu nhỏ để tạo thành các pixel thô sơ trong sự hình thành nghệ thuật khối của Rubik. Có thể xem các ví dụ về nghệ thuật như vậy qua liên kết này: http://google.com/search?q=rubik%27s+cube+art
Bây giờ, mục đích của Code Golf này là tạo mã chấp nhận hình ảnh làm đầu vào, sau đó chuyển đổi nó theo cách sau:
Hình ảnh ban đầu được giảm xuống thành màu xám an toàn trên web. Lý do đằng sau điều này là vì chúng ta cần cách ly bảng màu xám an toàn trên web (ví dụ 000000, 333333, 666666, 999999, CCCCCC và FFFFFF). Một thuật toán về phương pháp so màu chuyển đổi sang thang độ xám có sẵn tại: http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.28luminance-preserving.29_conversion_to_grayscale , nếu bạn muốn sử dụng nó làm cảm hứng.
Sau đó, người ta sẽ đưa ra thang độ xám với các màu thích hợp. Để giải quyết nhanh chóng: 000000 sẽ đề cập đến màu xanh của Rubik, 333333 sẽ đề cập đến màu đỏ của Rubik, 666666 sẽ đề cập đến màu xanh của Rubik, 999999 sẽ đề cập đến màu cam của Rubik, CCCCCC sẽ đề cập đến màu vàng của Rubik và FFFFFF sẽ đề cập đến màu trắng của Rubik.
Tôi muốn thay vào đó là mã kết quả của bạn có thể hiển thị từ bảng màu của ảnh thẳng với màu của Rubik. Phương pháp hai giai đoạn từ chuyển đổi sang thang độ xám an toàn trên web và sau đó sang bảng màu Rubik tương ứng chỉ là cung cấp cho bạn ý tưởng về logic đằng sau quy trình, nhưng bằng mọi cách, bạn sẽ dễ dàng thực hiện điều này hơn.
Các giá trị RGB thực tế cho bảng màu của Rubik phải tương ứng như sau:
- Màu đỏ: # C41E3A
- Màu xanh lá cây: # 009E60
- Màu xanh: # 0051BA
- Cam: # FF5800
- Màu vàng: # FFD500
- Trắng: #FFFFFF
Để cho bạn một ví dụ, tôi đã cắt đầu của Abraham Lincoln từ hình ảnh sau : , và đưa ra thuật toán để tạo ra các điều sau:
Lưới ở đó để bạn có thể thấy từng khối Rubik thu nhỏ riêng lẻ sẽ phải được cấu hình như thế nào để tạo thành hình ảnh. Kích thước thật của hình ảnh thu được là 45 pixel x 45 pixel, nghĩa là (45/3) * (45/3) = 15 * 15 = 225 khối Rubik thu nhỏ sẽ được sử dụng để tạo hình ảnh này. Tôi không mong đợi bạn trình bày hình ảnh kết quả với một lưới như tôi có.
Vì vậy, đây là những gì cần thiết:
Hình ảnh được xử lý bằng thuật toán này phải có độ rộng x pixel cao bằng y pixel, sao cho x và y là bội số của 3. Điều này nhằm giúp dễ dàng hiển thị như một phần của khối khảm khối Rubik. Nếu hình ảnh của bạn khá lớn, nên giảm hình ảnh xuống khoảng 45 x 45 đến 75 x 75 hoặc ở các kích thước trước khi xử lý. Hãy nhớ rằng, thành phần thay đổi kích thước này là TÙY CHỌN.
Hình ảnh cần phải được chuyển đổi sang bảng khối Rubik sextacolored để tạo ra bức tranh khảm.
Hình ảnh thu được cần phải là một tệp đồ họa hợp lệ sau khi xử lý. Để chứng minh mã của bạn hoạt động, hãy chạy nó dựa trên hình ảnh của một trong những tổng thống của Hợp chủng quốc Hoa Kỳ hoặc một người nổi tiếng Hollywood nổi tiếng. Tôi đã sử dụng Abraham Lincoln trong ví dụ của mình, vì vậy tổng thống này không còn được sử dụng nữa. Đảm bảo rằng bạn cung cấp ngôn ngữ bạn đã sử dụng, số byte cũng như tổng thống / người nổi tiếng được sử dụng để kiểm tra mã của bạn, bao gồm cả trước và sau khi chụp ...
Mỗi mục phải có một chủ tịch / người nổi tiếng duy nhất là trường hợp thử nghiệm của họ. Tôi sẽ không chấp nhận trùng lặp. Điều này sẽ đảm bảo rằng các kết quả trùng lặp không được sử dụng để kiểm tra các mục nhập mã khác nhau. Thật tốt khi nói rằng mã của bạn hoạt động, đó là một điều khác để chứng minh điều đó.
5. Mã ngắn nhất sẽ thắng.
Tôi đang thay đổi điều này thành một cuộc thi phổ biến ... Tôi muốn xem ai có thể làm điều này mà không phải cạnh tranh về số byte ... Vì vậy, tôi sẽ trao giải thưởng này cùng với tiền thưởng sau ngày 28 tháng 2 năm 2014.
#000000 => #0051BA
, v.v.