Естественные науки

И снова о том же - задача про точки на сфере

Дано: сфера радиусом R и набор произвольных точек на плоскости. Плоскость перпендикулярна оси Z и касается сферы в точке {X = 0, Y = 0, Z = -R} (дальше буду условно называть её центром плоскости) . Надо "обвернуть" плоскость вокруг сферы, подробности ниже. Для случая, когда точка на плоскости смещена от центра плоскости не дальше, чем на R (R >= sqrt(x^2 + y^2)) все довольно просто: чтобы перенести точку на сферу, надо просто сдвинуть её вперёд по оси Z на sqrt(x^2 + y^2). То есть на столько же, на сколько она смещена от центра плоскости. А вот для остальных случаев уже не получается так - нужно менять координаты X и Y. И тут полный затык, уже как только не пробовал. Подскажите чего, а то я к вечеру уже плохо соображаю.
АЮ
Андрей Юдин
2 176
Взять, провести через имеющуюся точку А и центр плоскости О прямую АО. Т-к расстояние по условию больше R (с точками до R Вы сами разобрались) , то длину отрезка АО можно представить как R + r. Тогда расстояние, на котором проекция этой точки должна находиться в пл-ти, равно R - r (понятно, почему? ) . Тогда берем, и ставим точку на прямой ОА на расстоянии (R-r) от центра, и восставляем из этой точки перпендикуляр. Точка пересечения этого перпендикуляра и верхней полусферы и есть искомое.
Итого, для произвольной точки в кольцевой фигуре, ограниченой радиусами в R и 2R справедлива следующая формула, дающая расстояние от центра до проекции образа этой точки на верхней полусфере (Rp):

Rp = 2R - R0. Очевидно, формула изотропна и верна для любого угла.

Интересный вопрос задали, а то обычно такой треш...
Ольга Некрашевич
Ольга Некрашевич
24 280
Лучший ответ
Ты сначала определись, что ты ищешь? Отображение точек круга (проекцию твоей сферы на твою плоскость) или отображение ВСЕЙ плоскости на НИЖНЮЮ полусферу? И откуда вот это: "надо просто сдвинуть её вперёд по оси Z на sqrt(x^2 + y^2)."?! Это же просто расстояние от оси Z? Радиуса-то там совсем нет! И, пардон, вечер тут ни при чём. Дело в голове...
Натали Ковальчук Он кольцо радиусом 2R проектирует.
Натали Ковальчук Ой, точнее круг 2R.
Андрей Юдин >И откуда вот это: "надо просто сдвинуть её вперёд по оси Z на sqrt(x^2 + y^2)."?!
Двигаем точку по оси Z вперед на её расстояние ОТ центра координат плоскости. Что непонятного?
>Ты сначала определись, что ты ищешь?
Простым языком - взять прямую, лежащую на плоскости, и "намотать" её как нитку на клубок.
Так понятнее, учитывая комментарий о том, что отображаться должны точки из круга радиусом 2R.

Тут, наверное так будет.... Движение от точки на окружности R к окружности 2R - это все равно что идти в обратную сторону от окружности R - к центру.

То есть, уравнение будет (R-x)^2+(R-Y)^2. Поскольку точка должна отражаться в "северное" полушарие, то, видимо z = sqrt( (R-x)^2+(R-Y)^2 )




Это так, навскидку. Если по-серьезному, думать надо, а лень :-)
Марина Саванюк А, не, че-то не то. Тут надо сперва правильно записать, как будут отображаться точки (x,y) из кольца с внутренним радиусом R и наружным 2R в круг радиусом R. А дальше будет уже просто - то же уравнение сферы по этим точкам. То есть, надо сжать кольцо в круг.
Марина Саванюк Сегодня подумал, получается вот такая вещь - надо точки из кольца между R и 2R отразить вдоль радиуса относительно окружности R. Для любой точки (x0, y0): r0 = sqrt( x0^2 + y0^2), Тогда расстояние от начала координат до искомой точки (x1,y1) будет r1 = 2R-r0. Из подобия треугольников найдем коэф. подобия: K = (2R-r0)/r0. Теперь найдем x1 = K*x0 и y1 = K*y1.
Ну, почему только "к вечеру" ?
Посмотри https://ru.wikipedia.org/wiki/Стереографическая_проекция
Представьте, как ведут себя лучи, исходящие из точки (0, 0) на плоскости.
При вашем отображении они "наматываются" на сферу как нитки на клубок.
Плоскость "намотки" будет перпендикулярна нашей плоскости и содержать луч.

Таким образом можно перейти от 3D к 2D.
Расстояние от начала координат до точки на луче определяет длину дуги на окружности после "намотки".
Как вам должно быть известно, длина дуги пропорциональна углу, который эта дуга занимает на окружности.
Зная этот угол, можно найти z, а затем новые x и y

Похожие вопросы