이것들은 썸네일 일뿐입니다.
(나는 Algodoo 로 이것을 만들었다 .)
이 이미지 클래스에는 항상 다음과 같은 속성이 있습니다.
- 그것들은 항상 흰색 배경을 가진 400 × 400 픽셀입니다. (SE 이미지가 손실 압축되므로 정확하게 흰색이 아닐 수 있습니다.)
- 그들은 1에서 4 개의 동일한 배를 가지고 있으며, 각각은 거의 모든 방향으로 회전하고 위치합니다.
- 그들은 이미지의 하단에 도달하는 하나의 수직 강철 슈트를 가지고 있습니다.
- 슈트의 하단을 제외하고 슈트 및 배 경계 상자 ( 경계 상자 예 )는 이미지 경계를 절대로 터치하거나 벗어나지 않습니다.
- 배의 경계 상자는 서로 겹치거나 슈트와 겹치지 않습니다.
- 배는 B , C 및 D 에서처럼 슈트의 경사 부분 아래에있을 수 있습니다 . (슈트의 경계 상자가 배의 경계 상자와 겹칠 수 있습니다.)
- 슈트의 모든 바운딩 박스가 그 위에 자유롭게 장착 될 수있는 충분한 공간이 있고 ( "적합하게 맞지 않는"경우는 테스트되지 않음) 컬럼 부분의 일부가 보이는 한 슈트는 수평 및 수직 위치를 가질 수 있습니다.
도전
그러한 이미지를 가져 와서 같은 장소에 슈트가있는 다른 400x400 이미지를 출력하는 프로그램을 작성하십시오. 그러나 배가 재배치되어 모두 슈트 위에 있습니다 (따라서 그것에 빠지고 주스를 마실 수 있습니다).
출력 이미지의 요구 사항은 다음과 같습니다.
- 입력 이미지의 모든 배는 깔때기의 왼쪽과 오른쪽 가장자리 사이에서 슈트 위에 있도록 재배치해야합니다. (가장자리가 이상 하지 않습니다 .)
- 각 배는 반드시 회전 각도를 유지해야합니다. (따라서 배를 자르지 말고 잘라 내야합니다.)
- 배는 서로 또는 슈트와 겹치거나 닿아서는 안됩니다. (배 경계 상자 는 겹칠 수 있습니다.)
- 배는 이미지 경계를 건드 리거나 벗어나지 않아야합니다.
다음은 5 개의 샘플 이미지에 유효한 출력 예입니다.
이것들은 썸네일 일뿐입니다.
E 에 대한 입력 이미지 는 이미 유효한 출력이지만 기술적으로 필요하지 않을 때 배를 재배 열하는 것은 괜찮습니다.
세부
- stdin / command line / function call을 통해 이미지의 파일 이름 또는 원시 이미지 데이터를 가져옵니다.
- 선택한 이름의 파일로 이미지를 출력하거나 원시 이미지 파일 데이터를 표준 출력으로 출력하거나 단순히 이미지를 표시하십시오.
- 일반적인 무손실 이미지 파일 형식을 사용할 수 있습니다.
- 그래픽 및 이미지 라이브러리가 사용될 수 있습니다.
- 여기저기서 몇 개의 잘못된 픽셀 (손실 또는 무언가로 인한)은 큰 문제가 아닙니다. 시각적으로 잘못된 것을 말할 수 없다면 아마 괜찮을 것입니다.
바이트 단위의 가장 짧은 코드가 이깁니다. Tiebreaker는 최고 투표 게시물입니다.
칸 아카데미 계정이 있는데이 문제를 해결하기에 완벽 해 보입니다. 칸 아카데미에서 해결할 수 있습니까? 하나의 합병증 만 있습니다 : 외부 이미지는 허용되지 않습니다. 다행히 나는 통해 이미지를 실행할 수있는 이 칸 아카데미 친화적 인 데이터로 변환 할 수 있습니다. 이것이 허용됩니까?
—
BobTheAwesome 2016 년
@BobTheAwesome JavaScript 답변을 게시 하시겠습니까? 400x400 이미지를 입력하고 출력해야하지만 괜찮습니다. KA에서 작업 한 방식을 보여주기 위해 작업을 게시 할 수 있지만 400x400 이미지에서 작동하지 않으면 승자로 인정하지 않을 수 있습니다.
—
Calvin 's Hobbies
완벽한 우연의 일치; 칸 아카데미는 Javascript + Pjs에 대한 기본 400x400px 캔버스를 가지고 있습니다.
—
BobTheAwesome 2016 년
아니!! 400x400 이미지에서 Imagenator가 매우 느립니다 !!
—
BobTheAwesome 2016 년