Окружность

Сообщение №6541 от Denis 22 января 2003 г. 02:36
Тема: Окружность

Кто знает, как задать окружность параметрическими уравнениями? Имеется ввиду в 3D. Желательно конечно через нормальный вектор к плоскости окружности и радиус, но... если есть другие варианты... =)


Отклики на это сообщение:

> Кто знает, как задать окружность параметрическими уравнениями? Имеется ввиду в 3D. Желательно конечно через нормальный вектор к плоскости окружности и радиус, но... если есть другие варианты... =)

В 2D:

X = R*cos(u)
Y = R*sin(u)

В 3D окружность не существует (это "плоскостная" кривая). Если вы имеете в виду произвольную ориентацию окружности относительно осей координат, то просто измените ориентацию осей базисной системы координат. Это стандартная процедура; "базисные" выражения для Х и Y останутся, естественно, теми же.
Если хотите, приведу параметрич. ур-е сферы:

X = R*cos(u)*cos(v)
Y = R*sin(u)*cos(v)
Z = R*sin(v)



> В 3D окружность не существует (это "плоскостная" кривая). Если вы имеете в виду произвольную ориентацию окружности относительно осей координат, то просто измените ориентацию осей базисной системы координат. Это стандартная процедура; "базисные" выражения для Х и Y останутся, естественно, теми же.
> Если хотите, приведу параметрич. ур-е сферы:

> X = R*cos(u)*cos(v)
> Y = R*sin(u)*cos(v)
> Z = R*sin(v)

Извините меня, как это небывает окружности в 3D? А что же за кривую я получу, если рассеку сферу плоскостью A*x+B*y+C*z=0?


> > В 3D окружность не существует (это "плоскостная" кривая). Если вы имеете в виду произвольную ориентацию окружности относительно осей координат, то просто измените ориентацию осей базисной системы координат. Это стандартная процедура; "базисные" выражения для Х и Y останутся, естественно, теми же.
> > Если хотите, приведу параметрич. ур-е сферы:

> > X = R*cos(u)*cos(v)
> > Y = R*sin(u)*cos(v)
> > Z = R*sin(v)

> Извините меня, как это небывает окружности в 3D? А что же за кривую я получу, если рассеку сферу плоскостью A*x+B*y+C*z=0?

Вы, вероятно, прочитали только первое предложение моего сообщения. Прочтите его полностью. Как вы думаете, я не в курсе, что прямую линию, или окружность, или еще какую бяку можно произвольно располагать в 3D? Я вам даже написал, кАк это сделать.
Вас интересует дело или что-то другое? Учтите, по этому "другому" на форуме есть такие специалисты, что с ними трудно тягаться. Проверено электроникой:)


> Вы, вероятно, прочитали только первое предложение моего сообщения. Прочтите его полностью. Как вы думаете, я не в курсе, что прямую линию, или окружность, или еще какую бяку можно произвольно располагать в 3D? Я вам даже написал, кАк это сделать.
> Вас интересует дело или что-то другое? Учтите, по этому "другому" на форуме есть такие специалисты, что с ними трудно тягаться. Проверено электроникой:)

Ладно, не суть. Сфера это конечно здорово, но меня интересует вот что: У нас есть окружность с центром в начале координат радиуса R, Лежащая в плоскости A*x+B*y+C*z=0. Какие будут ее параметрические уравнения? Ведь этих данных достаточно, чтобы задать их однозначно?


Известно, как задать окружность в двумерном пространстве. Наша задача - натянуть её на произвольную плоскость в трёхмерном пространстве. Это можно сделать, создав в пространстве ортонормированный базис такой, что один из его векторов коллинеарен данному вектору нормали. Вычислим его с помощью векторного произведения.
Пусть norm = вектор нормали. Придумаем любой вектор, не коллинеарный ему, назовём его vec1.
vec2 = [ norm x vec1 ], я имею в виду векторное произведение.
vec3 = [ norm x vec2 ]
Теперь у нас есть три взаимно перпендикулярных вектора: norm, vec2, vec3. Нормализуем vec2 и vec3, то есть разделим на длину. Всё готово для создания окружности:
point = center + vec2 * R * cos(t) + vec3 * R * sin(t)
Это окружность радиуса R с центром в точке center, перпендикулярная вектору norm.


Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама:
Rambler's Top100