2012-04-08 2 views
2

나는 그런 이미지에서와 같이 "중력 그리드"를 만들 싶습니다중력 그리드는 어떻게 만들 수 있습니까?

img2

:

img

나는이 그리드를 만드는 데 있었다 가장 가까운이 이미지에 표시됩니다

이 문제를 해결할 수있을 때까지 Y 축에 평행 한 선만 뒤틀리고 있습니다. 그러나 그림에서 볼 수 있듯이 줄들은 내 "행성"을 뒤덮고있는 것처럼 보입니다.

for (each point on a line parallel to the y-axis) { 
    if (planetPosition.x > currrentPoint.x) { 
     warpedXPos = currrentPoint.x + (1/(distance*1000)); 
    } 
    else { 
     warpedXPos = currrentPoint.x - (1/(distance*1000)); 
    } 
} 

답변

5

아이디어는 R가 행성으로부터의 거리 (1)/R에 비례하는 양만큼 지구를 향해 모든 지점을 당겨이다 : 여기

제가 지금이 주목 코드 요점. 등이 currentPoint.x 코드에서는

절대 위치,하지만 당신은 행성에 위치 상대를 휘게 할 필요가있다. +

warped.x = currrentPoint.x + (planetPosition.x-currrentPoint.x)/(1000*distance) 

부분은 기본적 워프 상대적인 거리의 확장을, 그리고 당신은 원래의 절대 값이 편향을 추가처럼 따라서 당신의 식을 보일 것입니다. 아마도 1000 요소를 사용하고 싶지는 않을 것입니다. 그러나 이는 단지 예제를 유지하는 것입니다. 또한 이것을 >을 사용하여 케이스로 분할 할 필요가 없으므로 뺄셈의 부호는 적절한 방향으로 조정해야합니다.

(단,이 유형의 작업은 매우 일반적입니다 ... 먼저 절대 계수를 뺀 다음 크기를 조절 한 다음 원래 계수를 다시 추가합니다. 많은 응용 프로그램에서 사용하기 위해 암기하는 가치가있는 트릭입니다 .)

+0

감사합니다. 나는 이것을 몇 시간 동안 알아 내려고 노력했다. – Nathan

+0

팁, 대신 1/R^2를 사용하십시오. 실제 중력이 무엇인지 잘 보입니다. –

+1

@Stephan : 뒤틀린 공간 다이어그램은 1/R로 표시되는 중력 포텐셜을 보여줍니다. 다른 힘인 힘은 1/R^2로 나옵니다. 그러나 힘을 공간 왜곡으로 나타내는 것은 아무런 의미가 없습니다. http://en.wikipedia.org/wiki/Gravitational_potential – tom10

관련 문제