바람과 기타 코리올리같은 것은 무시하고 관리할 수 있는 탄환 궤적을 그리기 위해서 컴퓨터로 함수를 만들었는데
대략 지금의 위치를 기준으로 지금의 가속도에 (항력(C_d) + 중력 가속도(G))를 빼준다음 그 나온 가속도를 가지고 다음의 위치를
구하도록 하는 식으로 함수를 만들었죠.
POS1에서 Vy를 C_Dy에 + G(-9.81)한 것을 빼고 Vx에서 C_Dx만큼 뺀 곳의 위치를 구해서 이동시켜요.
보통 1초에 60 프래임 정도니까 1초에 60번 저짓을 한다고 보면 되겠네요. 한 프래임의 시간 단위는 1/60초...
Vy는 처음에는 G + C_dy 만큼 계속 감소하다가 Vy = 0이 되는 순간 부터 G - (C_dy)만큼 다시 가속을 시작하죠.
암튼 중요한 것은 탄환은 그런 식으로 날아간다고 치면
가속도 Vy가 0이 되는 시간을 구하면 최고 높이에 도달하는 시간이고 그 이후에 물체의 높이 0이 될때까지 시간을 구해서 더하면
총 비행 시간이 되겠죠?
어음... 대략...
5kg짜리 항력이 0.013인 녀석을 45도로 발사 할 때를 그리기 시작하면...
Vy의 변화량
Vy1 (1/60sec) : (100/60) - (9.81/60 + 1.3/60) = 1.6666 - (0.1635 + 0.0217) = 1.4814
Vy2 : 1.4814 - (0.1635 + 0.0192) = 1.2987
Vy3 : 1.2987 - (0.1635 + 0.0168) = 1.1184
Vy4 : 1.1184 - (0.1635 + 0.0145) = 0.9404
.
.
.
이러다 Vyn : 0이 되면
Vyn+1 : 0+(0.1635-0) = 0.1635
Vyn+2 : 0.1635 + (0.1635 - 0.0021) = 0.3291
.
.
높이는 Vy : 0이 되기 이전 저 결과 값들을 전부 다하면 높이가 나올 거라 생각되는데...
그니까... 1.6666 + 1.4814 + 1.2987 + 1.1184 이런식으로 Vyn : 0 될 때 까지 더하면 총 올라간 높이가 되겠죠?
그 이후부터 고도가 0이 될때 까지 걸리는 시간을 구해서 두 시간을 더하면 총 날아간 거리가 될거라고 생각이 되는데...
일단 중3 수포자라 여기서부터 막히는 군요...
Vx는 시작 부터 끝까지 계속 항력 만큼 감속만 할꺼고 그걸 다 더하면 그 탄환이 날아간 거리가 되겠죠??
그럼 어느 각도로 쏘았을 때 어느 정도로 날아간다를 알게 되었으니까
어느정도 거리에 있는 것을 맞추려면 어느 각도로 쏘아야 된다는 것도 알 수 있지 않을까요?
...
궁극적으로 제가 알고 싶은 함수는 세가지 인데,
하나는 어느 각도로 쏘았을 때 탄이 떨어지는 지점과 걸리는 시간을 구하는 함수고
다른 하나는 목표에 탄환을 도착하게 만드려면 어느정도 각도로 쏘아야 하는가를 알려주는 함수에요.
함수에다가 대상의 거리하고 항력을 집어 넣으면 몇도로 쏴 이렇게 알려주는 함수죠...
구글신과 바디랭기지를 통해서 알게 된 것은 다 더하는 것은 시그마인가 그러고 노나는 거는 미분이라는데...
이런거 하려면 어떻게 개념을 잡아야 되는건지 감이 안와요....