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

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

3 Ответы

0 голосов
Представьте, как ведут себя лучи, исходящие из точки (0, 0) на плоскости.
При вашем отображении они "наматываются" на сферу как нитки на клубок.
Плоскость "намотки" будет перпендикулярна нашей плоскости и содержать луч.

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

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

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




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

Связанные вопросы