[ -3,3 ] 영역에 함수 f (x) = sin (πx) + 0.5 sin (3πx) 를 플로팅합시다 . 이것을 보드에 놓인 느슨한 줄로 해석 할 수 있습니다. 이제 n 손톱을 (x 1 , y 1 ) ~ (x n , y n ) 위치에서 x i ∈ (-3,3) 및 y i ∈ [-1,1] 위치로 보드에 넣습니다 . 줄 끝에 두 개의 작은 구멍이 있다고 가정합니다. 즉, 위치 (-3,0) 과 (3,0)에 있습니다. 이제 줄 끝을 잡고 줄이 팽팽해질 때까지 구멍을 잡아 당길 수 있습니다. 이것은 그래프를 부분 선형 함수로 변형시킵니다.
일부 사진이 도움이 될 수 있습니다. (-2.8, -0.7), (-2.5, -0.9), (-1.2, .2), (-0.5, .8), (0.5, .4), (1.2, -0.9) 에서 8 개의 손톱을 잡습니다. (1.5, -0.6), (1.8, -0.8) . 다음 3 가지 플롯은 위에서 설명한 프로세스를 보여줍니다.
더 큰 버전 : 오른쪽 클릭-> 새 탭에서 열기
그리고 시각화에 어려움이 있다면 끈 강화의 애니메이션이 있습니다.
도전
"손톱"(필수적으로 정렬되지는 않음)의 목록이 주어지면, 위의 함수 f 의 모양에서 시작하는 손톱과 팽팽한 끈을 그립니다 .
프로그램이나 함수를 작성하고 STDIN, ARGV 또는 함수 인수를 통해 입력 할 수 있습니다. 결과를 화면에 표시하거나 이미지를 파일로 저장할 수 있습니다.
결과가 래스터 화 된 경우 너비는 최소 300 픽셀, 높이는 100 픽셀이어야합니다. (-3, -1.1)에서 (3,1.1)까지의 좌표 범위는 이미지의 가로 및 세로 범위의 75 % 이상을 포함해야합니다. x 와 y 의 길이 스케일이 같을 필요는 없습니다. 손톱 (최소 3x3 픽셀 사용)과 끈 (최소 1 픽셀 너비)을 표시해야합니다. 축을 포함하거나 포함하지 않을 수 있습니다.
색상을 선택할 수 있지만 배경과 손톱, 끈 (색상이 다를 수 있음)에 대해 두 가지 이상의 구별 가능한 색상이 필요합니다.
모든 손톱이 f 에서 최소 10-5 단위 떨어져 있다고 가정 할 수 있습니다 (따라서 부동 소수점 부정확성에 대해 걱정할 필요가 없습니다).
이것은 코드 골프이므로 가장 짧은 대답 (바이트)이 이깁니다.
더 많은 예
다음은 더 간단한 두 가지 예입니다.
{{-2.5, 1}, {-1.5, -1}, {-0.5, 1}, {0.5, -1}, {1.5, 1}, {2.5, -1}}
(문자열은 x 축 과 일치합니다 .)
{{-2.7, -0.5}, {-2.3, -0.5}, {-1.7, 0.5}, {-1.3, 0.5}, {-0.7, -0.5}, {-0.3, -0.5}, {0.5, 1}, {1.5, -1}, {2.5, 1}}