Algorithm with C/Math
-
세 점의 방향 판단Algorithm with C/Math 2020. 9. 11. 10:35
벡터의 외적을 먼저 보고 오자. designatedroom87.tistory.com/103 벡터의 외적(Cross product) 1. 외적의 기하학적 정의 벡터의 외적을 한 결과값은 벡터이다. 벡터는 크기와 방향을 갖는다고 하였으므로 벡터의 외적을 한 결과 또한 크기와 방향을 갖는다. 이 방향은 벡터v1과 v2에 동시에 �� designatedroom87.tistory.com 벡터의 외적을 이용해서 세 점의 방향을 판단할 것이다. 위 그림에서 나타난 바와 같이 세 점의 방향 판단은 외적을 통해 이루어진다. 세 점의 방향을 판단하는 함수 메인 함수 및 프로그램 실행결과 프로그램 실행결과 소스 파일
-
벡터의 외적(Cross product)Algorithm with C/Math 2020. 9. 11. 00:48
1. 외적의 기하학적 정의 벡터의 외적을 한 결과값은 벡터이다. 벡터는 크기와 방향을 갖는다고 하였으므로 벡터의 외적을 한 결과 또한 크기와 방향을 갖는다. 이 방향은 벡터v1과 v2에 동시에 수직인 방향인데 오른손 법칙에 의해서 엄지손가락이 가리키는 방향이 선택된다. [그림 1] [그림 2] 2. 벡터의 성분에 대하여 외적을 정의 벡터의 외적은 결과값이 벡터이므로 성분에 대해서 나타낼 수 있다. 아래는 벡터의 성분에 대해서 외적을 정의한 것이다. [그림 3] 아래의 두 그림에 대해서는 약간의 설명이 필요한데, 점 A,B,C가 xy평면에 대해서 정의되어 있다고 가정하자. (점A,B,C의 좌표에서 z성분은 0이라고 생각하자.) 왼쪽 그림과 같이 우리 눈 쪽으로 오는 수직축을 z축의 음의 방향, 오른쪽 그림..
-
점과 점의 각도(삼각함수의 역함수를 이용)Algorithm with C/Math 2020. 9. 10. 08:32
1. 설명 위의 정보를 가지고 우리는 각도 theta를 구할 수 있다. dx와 dy를 알고 있으므로 이는 tangent함수를 이용해서 구할 수 있다. 각도는 반시계 방향을 기준으로 한다. 위의 내용으로부터 알 수 있는 사실은 dx와 dy만 구하면, 두 점에서의 각을 구할 수 있다. case1. originPos와 destPos의 x좌표와 y좌표가 모두 일치하는 경우 dx = 0, dy = 0 case2. originPos의 y좌표와 destPos의 y좌표가 일치하는 경우 (1). dy = 0, dx > 0 (2). dy = 0, dx 0 (2). dx = 0, dy < 0 case4. ..
-
API를 활용해서 삼각비를 통한 각도 구하기Algorithm with C/Math 2020. 9. 10. 07:16
직각삼각형에서의 삼각비 a는 높이, b는 빗변, c는 밑변이다. θ의 값은 어떻게 구할 수 있을까? 바로 역함수의 개념을 이용해서 구할 수 있다. 아래의 그림을 보자. 역함수의 개념을 이용해서 각도를 구해보자. 위에서 구한 각도로 우리는 어디에 쓸 것이냐가 궁금할 것이다. 플레이어와 에너미와의 각도를 구할 수 있다. 프로그램 코딩 보충설명 프로그램에서 arctan에 해당하는 함수가 atan2함수. atan2함수가 반환하는 값을 Radian변수가 이를 저장한다. 그러나, 이 과정으로 끝나지 않는다. 마지막으로, 라디언을 각도로 바꾸는 과정을 끝내야 한다. 각도와 호도법에 대한 내용은 아래에서 참고하도록 하자. designatedroom87.tistory.com/100?category=887656 각도와 호..
-
-
면적 넓이 구하기Algorithm with C/Math 2020. 9. 9. 18:59
1. 문제 암소가 필드에서 풀을 먹고 있다. 필드에 있는 로프는 두 개의 지주에 묶여 있고, 암소는 링으로 로프에 묶여 있다. 그래서 암소는 로프의 어떤 지점으로도 이동이 가능하다. 당신의 일은 암소가 가서 풀을 먹을 수 있는 필드의 면적을 구하는 것이다. [그림 ] 로프의 두께는 없고, 암소는 포인트 물체이고 링의 반지름과 지주의 두께는 무시할 수 있다. pi = 2 * arccos(0) 로 계산하고 ( 각은 라디언 ) double 형을 사용하라. 입력 각 줄에는 두 정수 D ( 0