
(생각나네 Cover the Earth Sherwin Williams 페인트(XXH0284) - RC Maxwell Company 옥외 광고 - Duke Libraries )
첨부된 JSL 파일(아래)은 이전 게시물 . (그러나 곧 게시할 예정입니다.) 지금은 애니메이션을 만들기 위해 이미지 세트를 캡처하기만 하면 됩니다.
이를 수행하는 방법을 설명하는 많은 웹 사이트가 있습니다. 다들 복잡해 보여서 간단한 걸 시도해 봤습니다. 합리적으로 올바른 결과가 나오는 것 같습니다. 위 이미지는 10월 말의 24시간을 나타냅니다. 태양이 남쪽으로 이동했습니다. 남반구는 낮이 길고 북반구는 낮이 짧습니다. 그 매혹적인 모양은 어디서 오는 걸까요?
태양은 지구의 절반을 비춥니다. 나머지 절반은 어둡습니다. 약간 반직관적이지만 위의 그래프는 태양 반대(더 나은 이름이 필요함)를 사용하여 태양 반대쪽 지구의 절반에 어둠을 투사하고 있습니다.
하루 중 시간과 연중 시간을 기준으로 태양 바로 아래 있는 지구의 지점을 찾는 것은 매우 간단합니다. 태양은 6월 21일에는 북쪽으로 23.5도, 12월 21일에는 남쪽으로 23.5도까지 돌아다닙니다. 이 단순화된 모델에서 태양은 대칭 사인 모양의 타임라인을 따릅니다. 실제로는 적도 아래에서 더 많은 시간을 보낸다고 생각하지만 . 그리고 24시간 동안 태양은 경도 360도를 가로지릅니다. 이것이 바로 빛의 중심이고 이 경우에는 어둠입니다.
가장자리는 어디에 있습니까?그만큼 터미네이터 황혼의 선이다.모든 방향에서 빛의 중심으로부터 90도입니다. 지도 표면의 태양 중심에서 90도 떨어진 곳에 원을 그리고 내부 또는 외부를 색칠합니다. 나에게 필요한 수학을 찾았어요 여기 , "내가 위도, 경도에서 시작하고 B도 방위에서 X마일을 이동하면 어느 위도, 경도에 도달하게 될까요?"라는 질문에 답하는 방정식의 형태입니다.90도는 우리 고향 행성에서 대략 6000마일에 해당합니다.
퍼즐의 다음 조각은 XY 함수를 사용하여 나선형을 그리는 스크립팅 인덱스의 예입니다.

그 뒤에 지도를 놓을 수 있나요?마우스 오른쪽 버튼 클릭->BackgroundMap->SimpleEarth...

완벽한! 그것은 더 이상 원형 나선이 아니며, 지도의 투영에 의해 왜곡되고 있습니다. 이는 태양 조명의 원을 평평한 지도에 투영하는 데 정확히 필요한 것입니다. 축을 약간 이동하고(마우스를 놓아 지도를 새로 고치고) 동일한 영역에 머물도록 모양이 바뀌는 나선형을 관찰합니다.


나선형 예에서는 90을 약간 넘는 Y 값을 생성합니다. 뾰족한 투영의 끝부분에 이상이 보이기 시작했습니다. 거기 가지 마세요.
주야간 그래프로 돌아가서: 여러 가지 변형을 시도했는데 이것이 가장 만족스럽습니다. 나선형의 선 너비를 넓게 만들지 만 너무 넓지는 않게 만듭니다. 그리고 나선형 루프의 수를 크게 만드십시오. 그러나 너무 크지는 않습니다. 선 색상을 검은색으로 만들고 투명하게 만들 수도 있습니다(향후 버전의 JMP용).나선형 루프의 수는 약간 후에 그래프 속도를 늦추기 시작합니다. 20은 빠르고 200은 느립니다. 20을 사용하면 사이에 있는 모든 것을 음영 처리하려면 더 두꺼운 선이 필요하지만 선이 두꺼우면 가장자리가 더 울퉁불퉁해집니다. JMP는 향후 릴리스에서 기본 그리기 도구를 변경하고 있으며 이 예에서는 투명성이 훌륭해 보이지만 JMP 12의 경우 나선형의 투명성으로 인해 굵은 선이 겹치는 부분에 아티팩트가 생성됩니다.
퍼즐의 또 다른 조각: JMP 맵 배경을 사용하면 실제로 비트맵 이미지와 경계 선 그리기라는 두 가지 배경을 얻을 수 있습니다.

그래프 사용자 정의 대화 상자를 보면 이 두 부분이 별도의 레이어로 표시됩니다.

그들은 고유한 속성을 가지고 있지만 더 중요한 것은 목록의 항목 1과 2로서 고유한 위치를 가지고 있다는 것입니다. 중요한 점은 배경 맵 이미지 위에 "밤 그늘"을 그려야 하고 그 위에 경계 모양을 그려야 하기 때문입니다(이 게시물 상단의 효과를 얻으려면). 따라서 나선형 스크립트가 위치 2에 삽입됩니다.

배경과 모양 사이의 사용자 정의 그래프 대화 상자에 표시됩니다. (다른 스크립트는 비어 있는데, 아래에 첨부된 JSL을 보면 이해가 될 것입니다.)

복잡한 예가 있는 웹 사이트에 대해 공평하게 말하자면, 투영을 수행하고 여러 영역으로 분할된 경우 음영 처리를 수행할 위치를 파악하기 때문에 복잡할 수 있습니다. 이 코드는 데이터 좌표를 지도 공간으로 변환하기 위해 내장된 지원을 사용하고 있습니다.
첨부된 파일은 아마도 $temp 디렉토리에 애니메이션용 24프레임을 생성하도록 설정되어 있을 것입니다. GIF 유틸리티를 사용하여 애니메이션을 만들거나 24개의 개별 보고서를 반복하거나 닫지 않도록 JSL을 변경할 수 있습니다.
다음 시간: 야간 조명 추가...
Projected circle of sunlightProjected circle of sunlightProjected circle of sunlightProjected circle of sunlight투영된 햇빛의 원
2017년 1월 4일 편집: 첨부된 JSL에 버그가 하나 이상 있습니다. 작성된 대로 현재 날짜 숫자의 보간으로 인해 6월 21일과 12월 21일 사이에만 실행됩니다. 다음과 같은 것이 더 좋습니다.
currentangle = Interpolate( currentpoint, lowpoint-365, 2 * Pi(), highpoint, Pi(), lowpoint, 2 * Pi(), highpoint+365, Pi() );
LowPoint는 356이고 HighPoint는 173입니다. 그것은 태양이 남쪽으로, 북쪽으로 멀리 있는 날을 나타냅니다. LowPoint-365는 전년도 12월, HighPoint+365는 다음해 6월입니다. 이제 보간법을 통해 일년 내내 누락되지 않은 결과를 얻을 수 있습니다.