[질문] 중력이고정되지 않은 상황에서의 역탄도

수학, 물리학 등 게임 프로그래밍의 기반이 되는 이론에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

[질문] 중력이고정되지 않은 상황에서의 역탄도

Post by 비회원 »

중력이고정되지않은 (중력방향이 0,-1,0이 아닐수있는) 상황에서의 역탄도 공식이 필요합니다
시간이 고정되지않은 경우엔 값을 값을 유도하는게 너무어럽습니다..ㅜ.ㅜ
주어진 값은 시작점,끝점,발사속도 이고 얻어내야할값은 발사각도(단위벡터) 입니다.
힌트라도 부탁드립니다(__)
jhk8211
Posts: 184
Joined: 2003-12-19 14:04
Location: 우리집

Post by jhk8211 »

가속도로 거리를 구하는 공식인

1/2 * 중력 * 가속도 * 시간제곱 + 초기속도*시간

을 활용하시면 됩니다.

초기속도*시간은 처음 쏠때 속도로 간 거리를 의미합니다.

간단히 말해서 하늘로 뭔가 던졌다고 했을 때 중력이 없다면 등속도 운동으로 계속 위로 가겠죠.

중력이 계속 아래 방향으로 가속시키기 때문에 떨어진다고 생각하면 됩니다.

주어진 값이 시작점, 끝점, 발사속도 이고,

얻을 값이 발사각도라면,

사실 속도라는 말은 틀렸습니다. 속도라는 것은 이미 방향이 포함된 것을 의미하기 때문에

힘과 발사각도를 분리해서 생각해야 합니다.

그렇게 되면 현재 주어진 값은 발사속도가 아니라 힘이 되겠죠.

알고자하는 발사각도 단위 벡터와 주어진 값인 힘을 곱하면 초기 속도가 됩니다.

따라서 발사각도 단위벡터를 미지수로 두고 값을 구하면 됩니다.

끝 점.. 도착 위치를 알기 때문에 식을 풀어낼 수 있습니다.
비회원

Post by 비회원 »

jhk8211 님 답변 감사합니다.
발사각도를 난수로 식을 풀어내실수있다고하셧는데 조금만더 힌트를 주시면 안될까요 ㅜ.ㅜ?
하도 아는게 없다보니;;
일단 GPG의 책내용을 보면 중력에 영향을 받지않는 성분 x를 이용해서 t=x/vi*cosθ 로 t를 구해서 t를 기준으로 식을 풀어나가는데요 이경우 중력에 영향을 받지않는 성분이없어서 ...ㅜ.ㅜ 어케해야할지 모르겟어요..
(그나마 책에 나온 식도 유도되는 과정은 모르겟고 아..그냥 일케하면 되는구나 정도로만 알아서...)

결국 시간값 t를 고정해서 시작점에서 끝점까지 몇초안에 날아갈수있는 방향*힘 벡터를 만들어 낼수는 있는데 이경우 무조건 가서 명중 하긴 하는데.. 원하는 각도나 힘으로 맞추는건 아니라서..원하는 모습이 아니고....
(결국 각도나 힘에맞는 t를 찾아내면 될거같은데 이건 이거대로 어렵고;;;)
조금만더 힌트를 주세요...ㅜ.ㅜ
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

우선 두 점과 상단벡터가 필요합니다. 그럼 그 점을 지나는 평면을 정의할 수 있죠. 이때 상단 벡터는 두점을 잇는 벡터로 정의되는 평면상에 위치한다면 어느 방향을 가리키던 문제는 없습니다.

그 평면상에 중력 벡터를 투영하면 평면을 기준으로 가해지는 순수한 벡터를 얻을 수 있습니다. 그리고 탄속을 나타내는 벡터도 합성하여 두 점사이의 거리를 속도로 나누어 주어 걸리는 시간을 알 수 있습니다.


이것이 바로 평면상의 등속운동에 필요한 시간이죠.



이제 이 시간 동안 가해지는 중력의 상방벡터를 구합니다. 이는 처음 평면을 구할때 사용했던 상방벡터에 투영하면 됩니다.

이렇게 구한 벡터는 탄이 목표에 다가가는 평면운동에 전혀 지장을 주지 않는 잉여성분으로, 두 점을 기준으로 일반적인 중력의 역할을 하게 됩니다.

일종의 상대중력입니다. 제 3자의 입장에서의 중력은 전혀 다른 방향이지만, 발사체가 느끼기에 작용하는 중력은 전혀 다릅니다. 줄에 매달려서 공을 던지면 공이 머리 위쪽 방향으로 날아가는 현상을 표현하는 것이 바로 이것이죠.


이렇게구한 가속도에 이동에 필요한 시간을 곱해주면 해당 시간동안 변화한속도를 구할 수가 있는데,

이 갚의 반대방향으로 동일한 값으로 가지고 날리면, 해당시간 뒤에 탄은 처음 발사한 평면에 다시 교차하게 됩니다.

이것이 우리가 원하는 발사벡터의 상박벡터 성분이므로, 처음 평면 운동에서 등속운동에 사용된 벡터와 합성되면, 우리가 원하는 발사벡터를 얻게 되는 것이죠.



참 쉽죠?


- 출처 : 본인의 뇌
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
maru09
Posts: 45
Joined: 2009-03-23 17:21

Post by maru09 »

Zeprod wrote:우선 두 점과 상단벡터가 필요합니다. 그럼 그 점을 지나는 평면을 정의할 수 있죠. 이때 상단 벡터는 두점을 잇는 벡터로 정의되는 평면상에 위치한다면 어느 방향을 가리키던 문제는 없습니다.

그 평면상에 중력 벡터를 투영하면 평면을 기준으로 가해지는 순수한 벡터를 얻을 수 있습니다. 그리고 탄속을 나타내는 벡터도 합성하여 두 점사이의 거리를 속도로 나누어 주어 걸리는 시간을 알 수 있습니다.


이것이 바로 평면상의 등속운동에 필요한 시간이죠.



이제 이 시간 동안 가해지는 중력의 상방벡터를 구합니다. 이는 처음 평면을 구할때 사용했던 상방벡터에 투영하면 됩니다.

이렇게 구한 벡터는 탄이 목표에 다가가는 평면운동에 전혀 지장을 주지 않는 잉여성분으로, 두 점을 기준으로 일반적인 중력의 역할을 하게 됩니다.

일종의 상대중력입니다. 제 3자의 입장에서의 중력은 전혀 다른 방향이지만, 발사체가 느끼기에 작용하는 중력은 전혀 다릅니다. 줄에 매달려서 공을 던지면 공이 머리 위쪽 방향으로 날아가는 현상을 표현하는 것이 바로 이것이죠.


이렇게구한 가속도에 이동에 필요한 시간을 곱해주면 해당 시간동안 변화한속도를 구할 수가 있는데,

이 갚의 반대방향으로 동일한 값으로 가지고 날리면, 해당시간 뒤에 탄은 처음 발사한 평면에 다시 교차하게 됩니다.

이것이 우리가 원하는 발사벡터의 상박벡터 성분이므로, 처음 평면 운동에서 등속운동에 사용된 벡터와 합성되면, 우리가 원하는 발사벡터를 얻게 되는 것이죠.



참 쉽죠?


- 출처 : 본인의 뇌
음.. 이 방식은 좀 이상합니다.
Zeprod wrote:우선 두 점과 상단벡터가 필요합니다. 그럼 그 점을 지나는 평면을 정의할 수 있죠. 이때 상단 벡터는 두점을 잇는 벡터로 정의되는 평면상에 위치한다면 어느 방향을 가리키던 문제는 없습니다.

그 평면상에 중력 벡터를 투영하면 평면을 기준으로 가해지는 순수한 벡터를 얻을 수 있습니다. 그리고 탄속을 나타내는 벡터도 합성하여 두 점사이의 거리를 속도로 나누어 주어 걸리는 시간을 알 수 있습니다.


이것이 바로 평면상의 등속운동에 필요한 시간이죠.
이부분에서 상단벡터라고 하는 부분이 중력과 같은방향이 아닐경우 중력성분이 남습니다. 그러므로 단순하게 거리를 속도로 나눈다고 해서 평면속도를 알 수 없습니다.
상단벡터를 중력으로 잡는다면 문제 없이 동작할 것 같습니다.

이 방식을 간단하게 설명하자면...
중력을 y성분만 남도록 좌표계을 회전시킨후 계산하는 것이죠.. ^^

ps. 그런데 중력이 고정되지 않았다는 말은 중력의 방향을 알 수 없다는 말이었나요? 보통은 중력이 시간에 따라 변할 때 그런 표현을 쓰는데요.. ^^
정영구
비회원

Post by 비회원 »

Zeprod 님 귀중한 답변감사합니다!!
급한일이생겨서 확인이 늦었었습니다 죄송합니다(__)

그런데 잘 모르겟는부분들이 있어서 다시 질문드립니다 ㅜ.ㅜ

1. 두점의 상단벡터
- 이건 월드right벡터(1,0,0) 와 외적해서 구하면 되나요 ?
2. 탄속을 나타내는 벡터
- 이건 시작점으로부터 끝점을 향하는 벡터인가요?

정리해보겠습니다.
vPos(시작점->끝점벡터),vRight(월드라이트 1,0,0)

//두점의 평면상의 업벡터
vPlaneUp=Normal(vPos)*vRight ;
//중력벡터의 평면상의 투영
vPlaneGravity=PlaneDotCoord(Plane,vGravity);
//평면상의 등속운동시간
fPlaneTime=vPlaneGravity+vPos/fShotPow ;
//평면의 등속운동시간 동안 구해지는 중력의 상방벡터
vPlaneGravity=vPlaneUp*(vGravity*fPlaneTime *fPlaneTime/2.0f) dot (vPlaneUp);

맞나요;;?
그럼 다음으로 또 궁금한게;;;


3."이렇게 구한 가속도에 이동에 필요한 시간을 곱해주면 해당시간동안 변화한속도를 구할수가 있는데"
- 이렇게 구한 가속도가 뭔지 모르겟습니다;;;

4."이값의 반대방향으로 동일한 값으로 날리면 해당시간뒤에 탄은 처음 발사한 평면에 다시 교차하게 됩니다.
이것이 우리가 원한 발사벡터의 상방벡터 성분입니다."
- 이값의 반대방향이면 위에서 언급된 탄속벡터 *-해당시간동안 변화속도 인가요?

흙...ㅡ.ㅜ 이상입니다... 자꾸 질문글만 올려서 죄송합닏(__)
maru09
Posts: 45
Joined: 2009-03-23 17:21

zeprod 님의 방식은 안될 것 같습니다.

Post by maru09 »

비회원 wrote:jhk8211 님 답변 감사합니다.
발사각도를 난수로 식을 풀어내실수있다고하셧는데 조금만더 힌트를 주시면 안될까요 ㅜ.ㅜ?
하도 아는게 없다보니;;
일단 GPG의 책내용을 보면 중력에 영향을 받지않는 성분 x를 이용해서 t=x/vi*cosθ 로 t를 구해서 t를 기준으로 식을 풀어나가는데요 이경우 중력에 영향을 받지않는 성분이없어서 ...ㅜ.ㅜ 어케해야할지 모르겟어요..
(그나마 책에 나온 식도 유도되는 과정은 모르겟고 아..그냥 일케하면 되는구나 정도로만 알아서...)

결국 시간값 t를 고정해서 시작점에서 끝점까지 몇초안에 날아갈수있는 방향*힘 벡터를 만들어 낼수는 있는데 이경우 무조건 가서 명중 하긴 하는데.. 원하는 각도나 힘으로 맞추는건 아니라서..원하는 모습이 아니고....
(결국 각도나 힘에맞는 t를 찾아내면 될거같은데 이건 이거대로 어렵고;;;)
조금만더 힌트를 주세요...ㅜ.ㅜ

아까 대충 봤을 때는 동작할 것 같았는데... 좀 생각하니 동작할 것 같지 않군요..

일단. 글쓰신분이 위부분대로 하실 수 있다고 하니...
문제는 중력이 고정된 상태이기는 하되 방향이 일정하지 않아서 풀 수 없다고 한 듯합니다.

쉬운 해결 방법은 중력의 값이 y값만 남도록 하면 됩니다. 좌표 변환을 좀 하죠.

중력 방향의 유닛벡터를 g 라하고, g가 y방향이 아니라고 한다면 g와 y를 크로스 프로덕트 한 벡터를 x'
다시 x'과 g를 크로스 프로덕트 한 벡터를 y'으로 잡습니다.

이 상태에서 어떤 벡터의 g 방향 성분은 g벡터와 도트프로덕트 하면 됩니다.
이런 식으로 모든 벡터를 새로운 좌표계의 성분 g, x', y'의 형태로 만들어 놓고...
아시는 방법 대로 수식을 풉니다.

이 부분은 3D 쪽 관련 책자를 보시면 쉽게 알 수 있습니다. 3D 에서는 오브젝트 좌표계로 변환한다고 하죠.

다시 월드 좌표계로 변환하는 것은 반대로.. 구해진 벡터를 다시 원래의 x,y,z벡터를 곱해 주시면 되는데..
이때의 x,y,z의 (g,x',y') 좌표계의 값을 구해서 각 성분으로 곱해 주시면 됩니다.

그림 없이 설명하려니 매우 힘들군요.. ^^
정영구
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

이부분에서 상단벡터라고 하는 부분이 중력과 같은방향이 아닐경우 중력성분이 남습니다. 그러므로 단순하게 거리를 속도로 나눈다고 해서 평면속도를 알 수 없습니다.

중력 벡터를 한 평면과, 그에 수직한 벡터에 투영하면,
x, y, z 성분을 나누어 생각하는 것과 같이 완벽하게 분리가 가능합니다.


단지 나누어진 벡터가 x, y, z 인자로 떨어지는 것이 아닐뿐 DX공간좌표를 기준으로 설명드리자면,
상단 벡터가 새로운 z축 방향 발사, 탄착점으로 정의되는 평면이 , XZ 평면으로 받아들일 수 있죠.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

비회원 wrote: 1. 두점의 상단벡터
- 이건 월드right벡터(1,0,0) 와 외적해서 구하면 되나요 ?
2. 탄속을 나타내는 벡터
- 이건 시작점으로부터 끝점을 향하는 벡터인가요?
1. 두점을 잇는 벡터를 이용해 평면을 구했을때, 해당 평면상에 존재하는 벡터면 어느것이던 상관 없습니다.

ㅁ(필요한 벡터점)
|
|ㄱ
ㅁ -- - - - - - - - - ㅁ (목표)
(발사점)

두 벡터의 사잇각이 이렇게 직각만 되면 됩니다.

비회원 wrote: 3."이렇게 구한 가속도에 이동에 필요한 시간을 곱해주면 해당시간동안 변화한속도를 구할수가 있는데"
- 이렇게 구한 가속도가 뭔지 모르겟습니다;;;
1, 2번 질문에서 구한 벡터들은 발사체와 탄착점간의 로컬좌표처럼 생각하시면 됩니다.
이좌표계에 중력을 각 성분별로 분해하면, 위에서 직각 관계가 되도록 구한 벡터 방향이 우리가 일상 느끼는 중력의 방향입니다.

중력은 힘이므로, 물리 공식에 따라 질량을 나눠주면(이건 각자 기준이 다르겠죠.) 가속도를 구하게 됩니다.

이제 남은건 아주간단한 수준의 미적분이죠. 또는 물리 공식...

ADD : 그림이라도 그려서 올려야 설명이 편할텐데... 이해가 안되신다면 또 말씀주세요. 집에 들어가면 그림으로 설명드리겠습니다.


비회원 wrote: 4."이값의 반대방향으로 동일한 값으로 날리면 해당시간뒤에 탄은 처음 발사한 평면에 다시 교차하게 됩니다.
이것이 우리가 원한 발사벡터의 상방벡터 성분입니다."
- 이값의 반대방향이면 위에서 언급된 탄속벡터 *-해당시간동안 변화속도 인가요?
3번에서 구한 가속도를 상방벡터(상방벡터지만, (0,0,1) 같은 형태가 아닙니다) 에 투영하면 이동속도에 관여하지 않고 방향만 변경하는 힘을 추출할 수 있습니다.

우리가 필요한 것은 이 힘에의해 변형될 속도를 미리 가해 목표지점에서 상쇠되도록 하는 것입니다.

그렇게되면, 중력에 대한 이동거리 - 탄속에 의한 중력방향 이동거리가 증감 제로가 되므로, 목표거리에서 다시 최초 평면점을 통과하게 되지요.

당연하게도 이 방법을 이용하면, 움직이는 물체에 예측사격을 가하는 것이 아닌, 정지된 물체가 정지된 타겟을 향해 힘의 방향을 예측해 저격하는 식이 됩니다.


추가로 움직이는 물체를 다루려면 서로간의 상대속도까지 고려해야 합니다.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
jhk8211
Posts: 184
Joined: 2003-12-19 14:04
Location: 우리집

Post by jhk8211 »

비회원 wrote:jhk8211 님 답변 감사합니다.
발사각도를 난수로 식을 풀어내실수있다고하셧는데 조금만더 힌트를 주시면 안될까요 ㅜ.ㅜ?
하도 아는게 없다보니;;
일단 GPG의 책내용을 보면 중력에 영향을 받지않는 성분 x를 이용해서 t=x/vi*cosθ 로 t를 구해서 t를 기준으로 식을 풀어나가는데요 이경우 중력에 영향을 받지않는 성분이없어서 ...ㅜ.ㅜ 어케해야할지 모르겟어요..
(그나마 책에 나온 식도 유도되는 과정은 모르겟고 아..그냥 일케하면 되는구나 정도로만 알아서...)

결국 시간값 t를 고정해서 시작점에서 끝점까지 몇초안에 날아갈수있는 방향*힘 벡터를 만들어 낼수는 있는데 이경우 무조건 가서 명중 하긴 하는데.. 원하는 각도나 힘으로 맞추는건 아니라서..원하는 모습이 아니고....
(결국 각도나 힘에맞는 t를 찾아내면 될거같은데 이건 이거대로 어렵고;;;)
조금만더 힌트를 주세요...ㅜ.ㅜ
미지수는 2개입니다.
하나는 비회원님이 말씀하신 "시간" 이구요,
하나는 발사각도 단위벡터입니다.

자세히 말씀을 드리자면,,

알고 싶은 게 2개기 때문에 식도 2개여야 합니다.

하나는 위에 말씀드린대로 나왔구요, 저 식은 중력 가속도가 있을 때 t 라는 시간 후에 어느 위치에 있는지
계산하는 식입니다. 그냥 간단하게 나올 위치는 y 로 생각해봅시다.
그럼

y = (1/2 * 중력 * 가속도 * 시간제곱) + (힘*발사각도.y*시간)

나머지 식은 x 에 대한 식,, 이건 발사한 힘을 x 로 분리했을 때 중력과 관계없는 등속도 운동이므로
그냥

x = 시간 * 힘 * 발사각도.x

그런데 이미 도착할 위치인 x, y는 알고 있는 상태입니다. 힘도 알고 있고요,,
그럼 미지수 하나를 없애고 첫번째식을 2차방정식으로 만들어서 근의 공식으로 구하던가 하면 됩니다.

근데 적어놓고 보니까 비회원님 물어보신게 약간 이상하네요.
시간이 가변적이고 목적지로 날아가는 역탄도라면 발사각도가 정해져 있지 않으면 위에서 말씀하신대로
포물선이 고정되지 않습니다.

차라리 일정한 발사각도가 정해져있고 힘이 가변적이라면 정해져 있는 목적지로 날아가는 역탄도를 저렇게
구할수 있지만 비회원님께서 물어보신 건 애초부터 발사각도가 가변적이라 시간에 따라 포물선이 나올수도
있고 시간이 짧으면 거의 일직선이 나오고 그렇겠네요.
maru09
Posts: 45
Joined: 2009-03-23 17:21

Post by maru09 »

Zeprod wrote:
이부분에서 상단벡터라고 하는 부분이 중력과 같은방향이 아닐경우 중력성분이 남습니다. 그러므로 단순하게 거리를 속도로 나눈다고 해서 평면속도를 알 수 없습니다.

중력 벡터를 한 평면과, 그에 수직한 벡터에 투영하면,
x, y, z 성분을 나누어 생각하는 것과 같이 완벽하게 분리가 가능합니다.


단지 나누어진 벡터가 x, y, z 인자로 떨어지는 것이 아닐뿐 DX공간좌표를 기준으로 설명드리자면,
상단 벡터가 새로운 z축 방향 발사, 탄착점으로 정의되는 평면이 , XZ 평면으로 받아들일 수 있죠.
zeprod님의 방법은 시작점과 도착점의 위치가 중력의 수직방향으로 같은 경우에만 해당될 것 같습니다.
중력의 수직방향으로 봤을때 다른쪽의 높이가 다르다면 풀 수 없습니다.
정영구
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

maru09 wrote:zeprod님의 방법은 시작점과 도착점의 위치가 중력의 수직방향으로 같은 경우에만 해당될 것 같습니다.
중력의 수직방향으로 봤을때 다른쪽의 높이가 다르다면 풀 수 없습니다.
최초 계를 두 물체와 임의의 벡터로 잡았던만큼, 초기 조건을 잘 설정했다면, 두 지점이 모두 특정 평면위에 존재하는 상태로 계산이 시작됩니다. 그림이 설명이 편할 것 같네요..


Image

그림 실력이 없어서 알아보기도 힘드네요. 맥스로 그리는게 빨랏으려나...


부가 설명을 모두 빼고 계산의 요지는 이것입니다. 중력을 두 물체를 기준으로 한 평면의 x',y',z' 방향으로 분해하고, 이를 모두 적분하여 최종 속도변화량을 측정, 탄속과 합성합니다.
(x'를 타겟을 향한 벡터, y'를 타겟을 바라보고 있을때의 상방벡터, z'를 두 값의 외적으로 방향을 구합니다.)


이런식으로, 탄속과 중력, 두 점의 거리만으로 필요한 요소들을 모두 만들어낼 수 있습니다.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
maru09
Posts: 45
Joined: 2009-03-23 17:21

Post by maru09 »

^^ 이런 논쟁은 싫어하는데..
Zeprod wrote: 그리고 탄속을 나타내는 벡터도 합성하여 두 점사이의 거리를 속도로 나누어 주어 걸리는 시간을 알 수 있습니다.


이것이 바로 평면상의 등속운동에 필요한 시간이죠.
이 부분이 틀린 부분입니다.

등속운동으로 가정하고 거리를 속력로 나누어 시간을 구하셨는데

그림에서 보듯이...

평면에도 등가속운동이 일어나죠...



문제를 풀 때 좌표계를 변환해서 풀기 쉽게 만드는 방법이 잘못됬다는것이 아니라...

중력방향으로 축을 잡아야 쉽게 풀 수 있다는 말씀을 드리는 겁니다.

중력 방향으로 축을 잡으면 중력에 수직인 방향에서는 가속도 성분이 전혀 없으므로 등속운동을 가정할 수 있지요.
정영구
비회원

Post by 비회원 »

Zeprod,jhk8211,maru09 님 답변 감사드립니다 ^^

그런데 아직도 문제가 풀리지않았습니다..ㅜ.ㅜ
일끝나고 짬이나서 코드로 옮겨봣는데요..잘안되네요 ..ㅜ.ㅜ

Zeprod님이 말씀하신대로 시작점->목표점을 향하는 벡터를 방향벡터삼아 상방,우측 벡터를 생성해서

평면에 분해된 중력벡터 vPlaneG와 평면상의 등속운동시간 fTime을 구했습니다..
이걸 가지고 만들어낸 가속도는 질량이 1이라는 전재하에 어떤녀석이 되나요?
vPlaneG가 그대로 가속도가 되는건가요?

이럴경우 평면에 분해한 중력벡터 vPlaneG를 평면의 상방벡터에 투영하면 최종 변화벡터가 나오는건가요?

여전히 가속도 구하는법과 최종변화 벡터 구하는법을 모르겠습니다....ㅡ.ㅜ
Zeprod
Posts: 480
Joined: 2006-11-04 16:24
Location: Creaty Networks
Contact:

Post by Zeprod »

maru09 wrote: 등속운동으로 가정하고 거리를 속력로 나누어 시간을 구하셨는데
그림에서 보듯이...
평면에도 등가속운동이 일어나죠...
그렇네요. 등가속 운동을 등속운동이라 써놓고 글을 잘못 풀었군요.

등가속 운동시에도 이동거리가 확정되었을때 걸리는 시간은 동일하게 구할 수 잇습니다.

두 점사이의 거리 = 등속운동으로 이동하는 거리 + 가속도에 의한 이동거리 이니까요.
(length = v' * t + g' * t * t : v' - 탄속의 투영, g' - 중력가속도의 투영)

탄속과 중력을 알 수 있다면, 이 식은 시간값을 제외한 모든 항이 상수가 되므로,

미지수가 1개인 2차 방정식이니, 1개의 방적식만으로도 총 걸린 시간을 구할 수 있습니다.


이렇게 되면, 직각방향의 가로, 세로에 의한 이동거리를 구할 수 있고 그에 대한 보정을 할 수 있게 됩니다.


비회원 wrote:평면에 분해된 중력벡터 vPlaneG와 평면상의 등속운동시간 fTime을 구했습니다..
이걸 가지고 만들어낸 가속도는 질량이 1이라는 전재하에 어떤녀석이 되나요?
vPlaneG가 그대로 가속도가 되는건가요?
총 운동시간을 구하실때는 위처럼 중력가속도를 고려해서 구하셔야겠습니다. 제가 하나 빼먹었네요.

질량이 1이니 중력(힘) 자체가 가속도와 같은값을 같는것은 맞습니다.
이럴경우 평면에 분해한 중력벡터 vPlaneG를 평면의 상방벡터에 투영하면 최종 변화벡터가 나오는건가요?
여전히 가속도 구하는법과 최종변화 벡터 구하는법을 모르겠습니다....ㅡ.ㅜ
새로 좌표계를 만드는 것이니, 로컬 좌표계를 구할때처럼 (두점 사이의 거리) 벡터와 상방벡터를 외적하면 평면상의 새로운 축을 구할수 있습니다.

그 방향에 중력을 투영하신뒤 계산을 진행하세요.


간단히 물리공식을 설명드리자면,

힘 / 질량 = 가속도
가속도 * 시간 = 속도
속도 * 시간 = 이동거리

입니다. 이것을 이용해 현재 구할 수 있는 모든 인자를 구하고자 하는 하나의 단위로 통일하시면 결국 그 값을 풀어낼수 있습니다.

이 경우에는 중력과 속도를 이용해 이동거리를 구하는 것이므로,

((가속도 * 시간 : 속도) * 시간 : 이동거리) + (속도 * 시간 : 이동거리) = 이동거리

이런 식을 만들어서 풀게 되는 것입니다.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
비회원

Post by 비회원 »

원 질문자 입니다. 답변주신 모든분들 감사합니다 ^^
시간을 미지수로 두고 식을 전개해서 유추해 낼수있다고 하셧는데...
어케하는지 몰라서..결국 좌표계 회전 시켜서 처리했습니다.

GPG 에 있던 각도 구하는 공식이 안에 어케되는질 몰르고 그냥 써서... tan에대한 2차벙식인 것도 모르고;;
(180도 뒤집어져도 xy 간 관계만 같으면 각도는같죠..ㅜ.ㅜ) 이리저리 해매다가 엉뚱하게 시간값 구해서 할려고 고생만 했내요;;;

2차원상에선 잘돌아가니까 -x여도 잘나오겟거니 하고...마법의 계산식인가 보다 하는 안일한 생각이...
삽질 크리를 유도했네요...ㅜ.ㅜ

결국 시작,끝,힘 으로 시간값 구하는건 못햇지만 당초 목표였던 각도 구하기는 해결되었습니다.
아....기쁨보단 슬픔이 밀려오네요....ㅜ.ㅜ

관심가져주신 모든분들 감사합니다ㅜ.ㅜ
Locked