
( 생각나 Cover the Earth Sherwin Williams Paint (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 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월입니다. 이제 보간은 일년 내내 누락되지 않은 결과를 얻을 수 있는 기회가 있습니다.