나는 수영장 게임을 C#/java로 만들려고 노력하고 있습니다.풀/당구 trig
start
= 백풀 큐 (X, Y)의end
풀 신호 (X, Y)의 = 전면circles
공 (X, Y, R)의 = 목록
그래서 마우스를 움직일 때마다 start
, end
을 업데이트 한 다음 '교차하는 경우 원 체크'를 반복합니다. 그렇다면 이것이 교차점에서 충돌하면 공이 어떻게 될지 알아 내야합니다 (문제는 바로 해결됩니다).
어떻게하면됩니까? 나는 구글에서 몇 가지 예를 살펴 보았지만, 그들이 벡터와 그 방법으로 내 머리 위로 한 예를 발견 할 수 있었다 ....
나의 첫 생각은 풀 큐의 각도와 원형 중간 점 그리기에서 얻은 것이었다. 동일한 각도로 선을 그 으려하지만 어떤 이유로 그 것이 잘못되었습니다. a
와
Math.ASin(a/r)
이 선 사이의 최소 거리가 큐와 대표 : 그것은
public Point GetEnd(Point start, double angle, int len)
{
double y = start.Y + (len * Math.Sin(angle));
double x = start.X + (len * Math.Cos(angle));
return new Point((int)x, (int)y);
}
이 종류의 물리학은 항상 벡터에 의해 모델링됩니다. 기본 선형 대수학을 배우는 데 약간의 시간을 투자하십시오. 필요한 재료는 그다지 어렵지 않습니다. – Donnie
나는이 단계에서 각도만으로 속도 나 마찰 또는 그 중 어떤 것도 필요로하지 않는다. – Pintac
이 기사는 아마도 도움이 될 것이다. http://www.codeproject.com/KB/game/CSharpSnooker.aspx – Terrance