직선과 나침반 만 주어지면, 주어진 사각형 안에 마름모를 그려서 두 개의 반대 점을 공유하십시오.
입력
입력은 사각형의 치수입니다. 표시된 예에서 이는입니다 125, 50
. 가장 편리한 방법 (정수,리스트, 문자열 등)으로 입력 할 수 있습니다.
더 큰 치수는 최소 100이되고 더 작은 치수는 최소 25가됩니다. 두 모자 모두 200입니다.
산출
출력은 이미지 (화면에 표시되거나 파일로 저장 됨)입니다.
- 입력 사각형
- 모든 "작업"라인 / 원
- 새겨진 마름모
뚜렷한 색으로. 위 이미지에서 사각형은 검은 색, 작업 선은 파란색, 마름모는 주황색입니다. 선은 목록에 표시된 순서대로 그려야합니다 (예 : 마름모는 작업 선과 사각형을 덮어 씁니다).
출력 이미지는 모든 것을 포함 할 수있을만큼 커야합니다. 예를 들어, 표시된 원은 경계를 벗어날 수 없습니다.
방법
위의 예제 이미지에 사용 된 방법은 다음과 같습니다.
- 왼쪽 아래 모서리를 중심으로 사용하고 오른쪽 위를 둘레의 점으로 사용하여 사각형의 대각선과 같은 반지름으로 원을 그립니다.
- 동일하지만 중심점과 경계점을 교환하십시오.
- 두 원의 교차점 사이에 선을 그려 직사각형의 대각선에 수직 이등분선을 만듭니다.
- 새 선과 사각형의 교차점을 사용하여 마름모를 그립니다.
이것은 마름모의 내부 대각선이 항상 서로 수직으로이기 때문에 작동합니다. 그래도 여기에 대한 완전한 증거를 포함 시키지는 않습니다.
이것은 마름모를 얻는 유일한 방법 이 아니며, 당신이하고있는 일을 설명하면 다른 것을 사용할 수 있습니다. 그래도 아마도 가장 쉬운 방법 이라고 생각 합니다.
규칙
원과 선 (또는 선분) 만 그릴 수 있습니다. 원은 중심점과 둘레 점으로 정의됩니다. 선은 두 점으로 정의됩니다. 선은 지정된 길이 일 필요는 없지만 최소한 정의 점을 덮어야합니다 (예제 이미지 참고 : 선은 원 교차점을 약간지나 쳐야하지만 가장자리는 아닙니다). 원의 경우 중심에서 선택한 둘레 지점까지의 반경이 작업 선으로 간주되며 표시되어야합니다.
선을 래스터 화하려면 인식 된 알고리즘 (예 : Bresenham)을 사용하거나 언어에 내장 된 모든 것을 사용할 수 있습니다. 출력이 벡터를 기반 으로하는 경우 입력 사각형보다 픽셀이 큰 해상도 로 표시되는지 확인하십시오 . 또한 일반 캔버스에 그릴 것이므로 모눈 표시 나 불필요한 출력을 억제하십시오.
컨닝 하지마! 지금까지 설정 한 것을 사용하여 점 / 선 / 원의 배치 만 결정할 수 있습니다. 작업 선 / 원을 사용하여 마름모임을 표시하는 방법을 설명 할 수없는 경우 잘못하고있는 것입니다.
원하는 반대쪽 쌍 쌍을 사용할 수 있으며 출력이 올바른 한 사각형을 축 정렬로 그릴 필요 는 없습니다 .
입력은 항상 정사각형이 아닌 사각형이므로 특별한 경우에 대해 걱정하지 마십시오.
마지막으로, 이것은 표준 코드 골프이므로 바이트 단위의 가장 작은 크기가 이깁니다.