'Random'에 해당되는 글 2건
- 2007/09/10 타이머 사용하기
- 2007/09/09 랜덤 코드 사용하기
본 글은 http://www.hoons.kr 에 있는 내용을 나름대로 이해되는 부분에 한해서 적은 것입니다.
타이머 사용을 위해서 네임 스페이스를 하나 선언합니다.
using System.Windows.Threading;
타이머 변수를 하나 선언합니다.
DispatcherTimer dt = new DispatcherTimer();
그리고 난수를 하나 생성하게 됩니다.
Random ran = new Random();
이후에 코드에 맞는 해당 값들의 전역 변수들을 선언 하면 됩니다.
dt의 타이머를 사용하기 위해서 초기 설정을 하게 됩니다.
dt.Interval = TimeSpan.FromMilliseconds(30);
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
Tick에 추가한 이벤트 핸들러에 대한 함수 원형을 추가 합니다.
void dt_Tick(object sender, EventArgs e)
{
.....
}
..... 이상 코드는 여기까지.......
Start()를 하고 나면 계속해서 타이머가 동작 하게 됩니다.
타이머 동작을 멈추고 싶다면 dt.Stop()를 해주면 됩니다.
이후에 참고할 만한 코드는
* 랜덤 함수는 ran.NextDouble() 를 사용해서 double형 값을 가져 올수 있습니다.
물론 double 말고도 int형을 가져 오는 함수도 존재 합니다.
* Canvas에 있는 오브젝트의 위치를 변경하기 위해서 아래와 같은 코드가 가능해 집니다.
Canvas.SetLeft(im, currX);
Canvas.SetTop(im, currY);
- im은 Canvas에 있는 객체의 Name 이며, currX, currY 는 전역 변수로 가지고 있는
위치가 되겠습니다.
* 해당 값의 절대값을 사용하기 위해서 아래의 코드를 사용합니다.
if (Math.Abs(currX - destX) < 1)
{
destX = ran.NextDouble() * this.ActualWidth;
destY = ran.NextDouble() * this.ActualHeight;
}
타이머 사용을 위해서 네임 스페이스를 하나 선언합니다.
using System.Windows.Threading;
타이머 변수를 하나 선언합니다.
DispatcherTimer dt = new DispatcherTimer();
그리고 난수를 하나 생성하게 됩니다.
Random ran = new Random();
이후에 코드에 맞는 해당 값들의 전역 변수들을 선언 하면 됩니다.
dt의 타이머를 사용하기 위해서 초기 설정을 하게 됩니다.
dt.Interval = TimeSpan.FromMilliseconds(30);
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
Tick에 추가한 이벤트 핸들러에 대한 함수 원형을 추가 합니다.
void dt_Tick(object sender, EventArgs e)
{
.....
}
..... 이상 코드는 여기까지.......
Start()를 하고 나면 계속해서 타이머가 동작 하게 됩니다.
타이머 동작을 멈추고 싶다면 dt.Stop()를 해주면 됩니다.
이후에 참고할 만한 코드는
* 랜덤 함수는 ran.NextDouble() 를 사용해서 double형 값을 가져 올수 있습니다.
물론 double 말고도 int형을 가져 오는 함수도 존재 합니다.
* Canvas에 있는 오브젝트의 위치를 변경하기 위해서 아래와 같은 코드가 가능해 집니다.
Canvas.SetLeft(im, currX);
Canvas.SetTop(im, currY);
- im은 Canvas에 있는 객체의 Name 이며, currX, currY 는 전역 변수로 가지고 있는
위치가 되겠습니다.
* 해당 값의 절대값을 사용하기 위해서 아래의 코드를 사용합니다.
if (Math.Abs(currX - destX) < 1)
{
destX = ran.NextDouble() * this.ActualWidth;
destY = ran.NextDouble() * this.ActualHeight;
}
네임스페이스 선언 : using System.Threading;
코드 사용방법 :
Random autoRand = new Random();
double marginleft = autoRand.NextDouble() * (this.Width - MoveObject.Width);
double margintop = autoRand.NextDouble() * (this.Height - MoveObject.Height);
Thickness th = new Thickness(marginleft, margintop, 0, 0);
MoveObject.Margin = th;
Next()는 int형 정보를 가져올때 사용한다.
NextDouble()는 double형 정보를 가져 올때 사용한다.
이후에도 seed의 값을 입력 하는 방법도 있으니 참고 하기 바란다.

Prev
Rss Feed