본문 바로가기

유니티 공부

삼각함수를 활용한 원 좌표 구하기

반응형

1. 원의 랜덤 좌표 공식

 

삼각함수 공식을 사용하여 원의 랜덤 좌표를 구할 수 있다.

public GameObject ball;

//sin(angle) = 높이/ 빗변
//cos(angle) = 밑변/ 빗변

//높이 = 빗변 * sin(angle)
//밑변 = 빗변 * cos(angle)

float angle = Random.Range(0, 360);
float radius = Random.Range(0, 5);

float x = Mathf.Cos(angle * Mathf.Deg2Rad) * radius;//밑변
float y = Mathf.Sin(angle * Mathf.Deg2Rad) * radius;//높이

ball.transform.position = new Vector2(x, y);
  • Mathf.Deg2Rad는 각도를 호도법으로 변환해주는 역할을 한다. 유니티의 Mathf.cos() Mathf.sin() 함수는 호도값을 인자값으로 받기 때문에, Mathf.Deg2Rad를 사용하지 않으면 의도하지 않는 각도로 변환해 값을 반환한다. 

2. 원 그리기

 

삼각함수 공식을 활용하여 일정한 간격으로 원을 그리는 공식

 

public GameObject ball;
private float speed = 10;
private float radius = 5;
private float runningTime = 0;
    
runningTime += Time.deltaTime * speed;
float x = Mathf.Cos(runningTime * Mathf.Deg2Rad) * radius;
float y = Mathf.Sin(runningTime * Mathf.Deg2Rad) * radius;

ball.transform.position = new Vector2(x,y);
반응형

'유니티 공부' 카테고리의 다른 글