SMALL

전체 글 772

궤적 상의 입자 운동 구현 및 애니메이션

오늘은 2차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개하고자 합니다. 먼저 궤적을 구성하는 점들의 좌표 데이터를 생성하는 작업부터 진행합니다. 그 과정은 다음과 같이 정의해봅니다. n = 400 t = [0:2*!pi:2*!pi/n] r = 0.5+COS(t) x = r*COS(t) y = r*SIN(t) HELP, x, y 여기서는 총 401개의 X축 및 Y축 좌표값들로 구성된 배열 x 및 y를 정의하였습니다. 이러한 점들로 구성된 궤적을 그림으로 표출하기 위하여 다음과 같은 과정을 추가로 실행합니다. sx = 600 sy = 600 win = WINDOW(DIMENSIONS=[s..

IDL/New Graphics 2026.03.13

데이터 포인트들을 다양한 색상으로 표출하기 [3]

2차원 공간상에 흩어져있는 다수의 데이터 포인트들 다양한 색상으로 표출하는 방법에 관한 게시물들(링크 1, 링크 2)을 올렸던 적이 있습니다. 그래서 이러한 방식의 구현을 위하여 SCATTERPLOT 및 BUBBLEPLOT 함수를 사용하는 방법 및 예제들을 다양하게 소개한 바 있는데요. 오늘은 이러한 연장선상에 있는 또 다른 예제들을 소개해보고자 합니다. 먼저 예제 데이터를 생성하는 과정부터 시작하면 다음과 같습니다. n = 100 x1 = RANDOMU(-1, n)*100 y1 = RANDOMU(-2, n)*100 x2 = RANDOMU(-3, n)*100 y2 = RANDOMU(-4, n)*100 x3 = RANDOMU(-5, n)*100 y3 = RANDOMU(-6, n)*100 여기서는 2차원 공..

IDL/New Graphics 2026.03.06

배열간 연산과 반복형 구문에 의한 연산 사이의 비교 [2]

지난 회차 게시물에서는 배열들을 사용하여 연산 결과를 얻는 방식에 있어서 배열간 연산과 반복형 구문에 의한 연산이라는 두가지 방식에 대하여 살펴보고 서로 비교해보았습니다. 특히 대용량 데이터를 다루게 될 경우에는 두 방식의 소요 시간이 서로 상당히 큰 차이를 보인다는 것도 함께 확인한 바 있습니다. 그러면 이번 회차에는 이러한 차이를 가늠할 수 있는 다른 예제를 살펴보기로 하겠습니다. 이번 예제에서는 반복형 구문 내에서 IF와 같은 조건형 구문이 사용되는 경우입니다. 예제를 보면 다음과 같습니다. n = 10000000 a = RANDOMU(-1, n)*100 b = RANDOMU(-2, n)*100 c = RANDOMU(-3, n)*100 TIC r = FLTARR(n) FOR j = 0, n-1 DO..

IDL/Programming 2026.02.26

배열간 연산과 반복형 구문에 의한 연산 사이의 비교 [1]

우리가 IDL에서 대용량 데이터를 처리하는데 있어서는 배열로 정의된 데이터를 다루는 것이 일반적입니다. 즉 대용량의 데이터를 배열에 담고 이러한 배열에 대하여 필요한 연산을 수행하는 방식입니다. 이러한 작업에 있어서는 반복형 구문을 사용하는 연산을 수행하는 경우도 있고 그냥 배열끼리의 연산으로 처리하는 경우도 있습니다. 통상적으로는 배열끼리의 연산으로 처리하는 경우가 많지만 작업의 특성에 따라서는 반복형 구문을 사용하는 연산을 하게 되는 경우도 있습니다. 오늘은 이러한 두가지 연산 방식을 서로 비교해보고 그 차이점도 확인해보고자 합니다. 이를 위하여 간단한 예제를 다음과 같이 작성해봅시다. n = 10a = RANDOMU(-1, n)*100 b = RANDOMU(-2, n)*100 c = RANDOMU(..

IDL/Programming 2026.02.23

TIC, TOC 명령을 활용한 시간 측정 방법

오늘은 IDL에서 특정한 프로세스가 돌아가는데 걸리는 시간을 측정할 때 사용하는 TIC, TOC 명령들에 관하여 간략히 살펴볼까 합니다. 사실 TIC, TOC 명령들은 제가 이 블로그에서 올린 몇몇 게시물들에서도 이미 여러번 사용한 바 있습니다. 사용 방법은 매우 간단하며 마치 스톱워치처럼 사용하면 됩니다. 즉 TIC 명령을 실행하면 시간 측정이 시작되고 TOC 명령을 실행하면 시간 측정이 멈추면서 그때까지 경과한 시간을 초 단위로 표시해줍니다. 먼저 다음과 같이 IDL의 명령 프롬프트에서 간단히 시도해봅시다. IDL> TIC IDL> TOC % Time elapsed: 3.4210000 seconds. 이와 같이 TIC 명령을 실행하고 어느 정도 이후에 TOC 명령을 실행하면 경과 시간 즉 TIC 명령..

IDL/Miscellaneous 2026.02.12

이미지(Image)에 대한 광원 효과 적용 [2]

지난 회차 게시물에서는 2차원 데이터를 이미지의 형태로 표출하면서 화소값의 높낮이에 따른 명암 및 그림자 효과를 구현하기 위하여 IDL의 OG(Object Graphics) 체계 기반으로 2차원 데이터를 서피스(Surface) 객체로 구현하고 여기에 광원(Light Source) 객체를 추가하여 이용하는 예제를 살펴본 바 있습니다. 일단 지난 회차에서 작업했던 내용을 그대로 가져와서 계속 작업을 이어나가기로 하겠습니다. 그 내용은 다음과 같습니다. dd = 0.02x = [-5:5:dd]#MAKE_ARRAY(10/dd+1, VALUE=1)y = [-5:5:dd]##MAKE_ARRAY(10/dd+1, VALUE=1)z = 5*((x^2+y^2)^0.3+SIN((x^2+y^2)*0.5))HELP, zPRIN..

IDL/Object Graphics 2026.02.05
728x90