Сообщение Re[2]: Определить лежит ли точка на дуге заданной тремя точк от 23.10.2014 6:28
Изменено 23.10.2014 9:15 igas
Здравствуйте, LuciferSaratov, Вы писали:
LS>Здравствуйте, igas, Вы писали:
I>>Дуга задана тремя точками в трёхмерном пространстве, помогите определить лежит ли заданная точка на этой дуге.
I>>Буду благодарен любой помощи
LS>1) строим плоскость, проходящую через эти точки
LS>2) если заданная точка плоскости не принадлежит, то ответ отрицательный
LS>3) вводим какую-нибудь декартову систему координат на плоскости, переводим координаты всех точек в нее, таким образом сводя задачу к двумерной
LS>4) строим уравнение окружности, проходящей через три точки
LS>5) если заданная точка окружности не принадлежит, то ответ отрицательный
LS>6) вводим полярную систему координат с центром, совпадающим с центром окружности, переводим координаты крайних точек дуги и заданной точки в нее
LS>7) если угловая координата заданной точки попадает в отрезок, заданный угловыми координатами крайних точек дуги, то ответ положительный, иначе отрицательный
В принципе, мой первоначальный вариант был по-похожему плану, но я закопался в вычислениях поэтому и попросил помощи, может проще что-то есть. Да, вы верно предположили, мне это нужно вычислять в программе на C++, поэтому нужно учесть не точность чисел с плавающей запятой и скорость вычисления.
LS>Здравствуйте, igas, Вы писали:
I>>Дуга задана тремя точками в трёхмерном пространстве, помогите определить лежит ли заданная точка на этой дуге.
I>>Буду благодарен любой помощи
LS>1) строим плоскость, проходящую через эти точки
LS>2) если заданная точка плоскости не принадлежит, то ответ отрицательный
LS>3) вводим какую-нибудь декартову систему координат на плоскости, переводим координаты всех точек в нее, таким образом сводя задачу к двумерной
LS>4) строим уравнение окружности, проходящей через три точки
LS>5) если заданная точка окружности не принадлежит, то ответ отрицательный
LS>6) вводим полярную систему координат с центром, совпадающим с центром окружности, переводим координаты крайних точек дуги и заданной точки в нее
LS>7) если угловая координата заданной точки попадает в отрезок, заданный угловыми координатами крайних точек дуги, то ответ положительный, иначе отрицательный
В принципе, мой первоначальный вариант был по-похожему плану, но я закопался в вычислениях поэтому и попросил помощи, может проще что-то есть. Да, вы верно предположили, мне это нужно вычислять в программе на C++, поэтому нужно учесть не точность чисел с плавающей запятой и скорость вычисления.
Re[2]: Определить лежит ли точка на дуге заданной тремя точк
Здравствуйте, LuciferSaratov, Вы писали:
LS>Здравствуйте, igas, Вы писали:
I>>Дуга задана тремя точками в трёхмерном пространстве, помогите определить лежит ли заданная точка на этой дуге.
I>>Буду благодарен любой помощи
LS>1) строим плоскость, проходящую через эти точки
LS>2) если заданная точка плоскости не принадлежит, то ответ отрицательный
LS>3) вводим какую-нибудь декартову систему координат на плоскости, переводим координаты всех точек в нее, таким образом сводя задачу к двумерной
LS>4) строим уравнение окружности, проходящей через три точки
LS>5) если заданная точка окружности не принадлежит, то ответ отрицательный
LS>6) вводим полярную систему координат с центром, совпадающим с центром окружности, переводим координаты крайних точек дуги и заданной точки в нее
LS>7) если угловая координата заданной точки попадает в отрезок, заданный угловыми координатами крайних точек дуги, то ответ положительный, иначе отрицательный
В принципе, мой первоначальный вариант был по-похожему плану, но я закопался в вычислениях поэтому и попросил помощи, может проще что-то есть. Да, вы верно предположили, мне это нужно вычислять в программе на C++, поэтому нужно учесть погрешность чисел с плавающей запятой и скорость вычисления.
LS>Здравствуйте, igas, Вы писали:
I>>Дуга задана тремя точками в трёхмерном пространстве, помогите определить лежит ли заданная точка на этой дуге.
I>>Буду благодарен любой помощи
LS>1) строим плоскость, проходящую через эти точки
LS>2) если заданная точка плоскости не принадлежит, то ответ отрицательный
LS>3) вводим какую-нибудь декартову систему координат на плоскости, переводим координаты всех точек в нее, таким образом сводя задачу к двумерной
LS>4) строим уравнение окружности, проходящей через три точки
LS>5) если заданная точка окружности не принадлежит, то ответ отрицательный
LS>6) вводим полярную систему координат с центром, совпадающим с центром окружности, переводим координаты крайних точек дуги и заданной точки в нее
LS>7) если угловая координата заданной точки попадает в отрезок, заданный угловыми координатами крайних точек дуги, то ответ положительный, иначе отрицательный
В принципе, мой первоначальный вариант был по-похожему плану, но я закопался в вычислениях поэтому и попросил помощи, может проще что-то есть. Да, вы верно предположили, мне это нужно вычислять в программе на C++, поэтому нужно учесть погрешность чисел с плавающей запятой и скорость вычисления.