Как определить, находится ли точка внутри скошенного конического усеченного конуса

Я пытаюсь выяснить, находится ли точка внутри конуса эллипсоида, образованного между точкой и кругом в трехмерном пространстве. Конус эллипсоидный, потому что точка не перпендикулярна центру окружности. См. схему ниже:

введите здесь описание изображения

Итак, я знаю:

  1. Положение точки, образующей вершину конуса: x
  2. Расположение центра окружности: c
  3. Радиус окружности: r
  4. Расположение различных точек, которые я хочу определить, находятся ли они внутри конуса: y, z

Вот вид сверху той же схемы:

введите здесь описание изображения

Меня не волнует основание конуса — я хочу, чтобы точки внутри конуса были эффективно растянуты до бесконечности.

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

Спасибо за любую помощь!


person kinkersnick    schedule 03.01.2017    source источник
comment
Вам также нужно знать нормаль круга.   -  person meowgoesthedog    schedule 10.02.2018


Ответы (1)


С коникой вы, вероятно, могли бы определить расстояние от оси и полумажора и минора и вычислить его напрямую. Сложнее какая-то произвольная форма.

Если конус имеет точку в направлении оси Z, и вы знаете точку в XYZ... тогда вы сможете нарисовать эллипс на этом конкретном уровне Z. Может быть, нарисовать его с 360 сегментами.

Когда у вас есть точка и эллипс, вы можете проверить сегмент эллипса, чтобы увидеть, есть ли пересечение в X и Y.

Изображение круга на 0,0,0 с радиусом 1. И точки на 0,0,0 есть 2 пересечения Y на +/- 90 градусов и 2 пересечения X, происходящие на 0 и 180

Если точка находится на 2,0,0, у вас все еще есть 2 пересечения в X, но они слева, и вам нужно одно слева и одно справа.

Нулевые пересечения означают. Что ты вне обруча.

Повторите для всех 360 сегментов и определите, как обрабатывать точки «на линии» и насколько близко «на».

person Holmz    schedule 03.01.2017