2016-02-24 9 views
-1

Я не совсем уверен, как сформулировать этот вопрос.Рассчитать X/Y/Z точки на поверхности смены Y

Я ищу способ вычислить новую точку X/Y/Z на поверхности сферы (которая имеет известный радиус) из известной точки X/Y/Z, где Y был увеличен неуместно к сфере. Если бы я мог получить радиус плоскости этого Y в сфере, то этого было бы достаточно, но мне трудно представить это.

Чем ближе Y к вершине сферы, тем больше изменение радиуса. Но я не уверен, как рассчитать радиус этого круга на плоскости в пределах сферы, основанной только на радиусе сферы и высоте, увеличенной от центра.

Visualization

В этом изображении, если нижний зеленый сляб при Y = 0; а второй - при Y = 5, а радиус сферы равен 10, каков радиус круга, где верхняя зеленая плита перехватывает круг.

+0

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что речь идет о [math.se] вместо программирования или разработки программного обеспечения. – Pang

ответ

0

Если ваша сфера центрирована по началу координат, вы можете рассчитать радиус плоского круга при смещении y = b, рассматривая круг на пересечении плоскости xy в начале координат. Это дает вам круг радиуса r. Точка (a, b), лежащая на этом круге, указывает | a | будет радиус пересекаемого круга, который вы хотите. Используя треугольник, образованный между осью x и линией между началом и (a, b), мы знаем, что a = r * cos (arcsin (b/r)).

+0

Правильно. Или - чуть проще - 'a = sqrt (r^2 - b^2)'. Это позволяет найти более простую производную: 'a '(b) = -b/sqrt (r^2 - b^2)'. Эта формула делает очевидным, что круг уменьшается быстрее, когда текущая точка приближается к полюсам. –

+0

@NicoSchertler Это то, что я получаю за попытку ответить на вопрос, когда засыпает :) Вы действительно должны опубликовать это как ответ. –

+0

Ваш ответ в порядке. Мой комментарий был просто дополнительной информацией. –