Cub3d 학습일지 - 1 - 삼각법 리뷰하기

대표 사진

 

Raycasting Basics with JavaScript

Learn the mathematics behind the ray casting technique used in the Wolfenstein 3D source code and implement a 3D projected scene using JavaScript

courses.pikuma.com

제 1강 Quick Trigonometry Review 빠르게 삼각법 리뷰하기

1.1  Review of Sine, Consine, and Tangent 사인, 코사인, 탄젠트 리뷰하기
1.2 
Review of Degrees and Radians 각도와 라디안 다시보기
1.Q 
Trigonometric Functions 삼각법 함수

1.1  Review of Sine, Consine, and Tangent 사인, 코사인, 탄젠트 리뷰하기
Q. What is Trigonometry? 삼각법이 뭔가요?
    A. Trigonometry is the study of trigons - a.k.a triangles!
         삼각법은 삼각형에 대해 공부하는 항목입니다.

- 기준 꼭짓점 : Pic1의 α

- opposite : 반대, 마주보는 변

- adjacent : 인접, 맞닿은 변 중 직각에 해당하는 변

- hypotenuse : 빗변

 

참고 : Sin, Cos, Tan 모두 함수라고 생각하셔도 됩니다. 입력값(각도)이 있으면 결과값이 있는거죠.

 

kkim 만의 설명: 

더보기

Pic 3처럼 필기체로 생각하세요. 위쪽의 s가 sin, c가 cos, t가 tan라고 생각하면 이해하는데 도움이 됩니다!

예를 들어 밑과 같은 그림에서 가운데 직선의 거리를 구한다고 합시다.
저희는 opposite의 길이를 알고 있습니다.
opposite은 160이며, 각도는 30도입니다.
이럴 땐 sin / cos / tan 중 무엇을 사용해야할까요?

$ answer = tangent $

$ adjacent = 160/tan(30) = 277.29 $

 

또 다른 예시를 들겠습니다.
A(x1, y1)에서 B(x2, y2)까지의 거리를 알고 싶을 땐 어떻게 해야 할까요?

이것도 간단합니다. 저희는 A와 B의 좌표를 알기 때문에,

길이를 추론하고 피타고라스 공식을 이용하여 간단하게 계산해낼 수 있습니다.

 

$ hypotenuse^2 = opposite^2 + adjacent^2 $

 

이걸 코드로 나타내면 다음과 같습니다!

distanceAB = sqrt((B.x - A.x) * (B.x - A.x) + (B.y - A.y) * (B.y - A.y));

 


1.2  Review of Degrees and Radians 각도와 라디안 다시보기
Q. What is Radians? 라디안이 뭔가요?
    A. 라디안은 원의 반지름을 기준으로 원의 둘레에서 반지름 만큼 이동하였을 때의 각도입니다.

참고로, 180도는 3.14 라디안 입니다. 또한 3.14는 𝝿이므로 180도는 𝝿입니다!

$ angle_r = angle_d + pi/180 $

#define		PI 100.0

double		ft_conv_deg_rad(double deg)
{
	return	deg * (PI / 100.0);
}

double		ft_conv_rad_deg(double rad)
{
	return	rad * (100.0 / PI);
}
const	FOV_ANG = 60 * (Math.PI / 180);		// field of view
const	RAY_CNT = 320;

// ~~

rayAngle += FOV_ANG / NUM_RAY

1.Q  Trigonometric Functions 삼각법 함수
Q. If you know the length of the hypotenuse and also the length of the adjacent side of a given triangle, what value we can easily find for this triangle?
Q. 만약 당신이 주어진 삼각형에서 빗변의 길이와 아랫변의 길이를 안다면, 삼각형의 어느 값을 쉽게 알 수 있습니까?
A. 각도의 sine

B. 각도의 cosine
C. 각도의 tangent
D. 각도의 역 tangent

Q. The distance between Jill and the diamond is exactly 50 pixels. The horizontal distance between her and the diamond is 30 pixels. With these two value (30 & 50) what can we tell about the angle that is formed between Jill and the diamond object?
Q. Jill과 다이아몬드 사이의 거리가 정확히 50픽셀이며(빗변), 수평 거리(밑변)가 30픽셀입니다. 이 두 값(30, 50)을 가지고 Jill과 다이아몬드 사이의 각도에 대해 어떤 것이 사실입니까?
A. 각도의 sine은 0.6입니다.
B. 각도의 cosine은 0.6입니다.
C. 각도의 tangent는 0.6입니다.
D. 각도의 sine은 1.66입니다.
E. 각도의 cosine은 1.66입니다.
F. 각도의 tangent는 1.66입니다.
더보기

정답 : B, B