한 광원에서 균일하게 뿜어져 나오는 빛줄기가 이차곡선의 오목한 부분에서 어떻게 운동하는지 관찰한다. 빛줄기는 어떤 형태를 만들기도 한다. 이러한 현상을 광학에서 커스틱(Caustic)이라 부른다. 현상을 구현하는 대강의 알고리즘은 다음과 같다.
- 출발점에서 빛줄기의 진행방향에 대한 직선의 매개변수 방정식과 이차곡선의 방정식을 연립하여 교점을 구한다. 여기서 교점은 반사가 일어나는 점 즉, 반사점이다.
- 출발점으로부터 반사점까지 거리를 구한다.
- 단위 이동거리과 남은 거리를 비교한다.
1
- 단위 이동거리가 남은 거리보다 작으면, 빛을 단위속력만큼 현재 방향으로 평행이동한다.
- 단위 이동거리가 남은 거리보다 크거나 같으면,
- 빛을 반사점으로 이동한다.
- 이차곡선의 반사점에 대한 수직방향을 이용하여 반사방향을 구한다.
- 반사방향으로 단위 이동거리에서 남은 거리를 빼고 남은 거리만큼 반사방향으로 평행이동한다.
- 평행이동한 점을 다시 출발점으로 하여, 첫 번째 과정부터 되풀이한다.
포물선의 빛줄기 반사
설명
광원을 포물선의 오목한 부분 안쪽의 원하는 위치에 두고 실행하여 사용한다.
타원의 빛줄기 반사
설명
광원을 타원 내부의 원하는 위치에 두고 실행하여 사용한다.
쌍곡선의 빛줄기 반사
설명
광원을 쌍곡선의 오른쪽의 오목한 부분 안쪽의 원하는 위치에 두고 실행하여 사용한다.
참고
- https://twitter.com/matthen2/status/1260084762997223424?s=20
- https://en.wikipedia.org/wiki/Caustic_(optics)
- 단위 속력 [본문으로]