2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Способ построения 3-D сцены кругового движения
Сообщение23.04.2008, 22:40 


23/04/08
1
Цель: создать простую 3D-сцену, которой можно управлять двумя углами beta и gamma.
Есть плоскость, проходящая через начало координат. Эта плоскость наклонена к плоскости xy под углом beta.
Если провести в этой плоскости перпендикуляр к прямой пересечения нашей плоскости с плоскостью xy, который проходит через начало координат, то угол между этим перпендикуляром и его проекцией на плоскость xy будет beta, а угол между проекцией перпендикуляра и осью x будет gamma. Т.е. по сути угол beta - это угол поворота плоскости относительно начала координат, а угол gamma - это угол поворота плоскости в плоскости xy относительно оси x.
Таким образом есть плоскость, которую можно описать в полярных координатах растоянием до любой точки на плоскости и двумя углами alfa и beta.
Если взять сферу радиуса R, центр которой лежит в начале координат, то можно найти пересечение нашей плоскости и сферы. Это будет окружность, которая наклонена к плоскости xy и этот наклон описывается двумя углами beta и gamma.
Эти угла задаются при прорисовке сцены.
Фактически нужно получить проекцию окружности на плоскость xy. это будет некий эллипс.
Есть угол alfa, который будем динамически изменяться для определения положения точки на окружности (в плоскости xy относительно оси x), например, приращением угла в 3 градуса.
Таким образом нужно получить уравнение проекции окружности на плоскость xy как x(R,alfa,beta,gamma) и y(R,alfa,beta,gamma), как в полярных координатах, чтобы можно было отображать на экране координаты x и y, изменять динамически угол alfa, а вращать сцену двумя углами beta и gamma.
Пробовал решать таким путем:

уравнение сферы:
x^2+y^2+z^2=R
и прямая, проходящая через начало координат:
Ax+By+Cz+D=0, D = 0
т.е.
Ax+By+Cz=0
находим пересечение этих поверхностей и убираем ось z для получения проекции на ось xy:
получаем путем подстановок:
x^2*(C^2+A^2) + 2*A*x*B*y + y^2(C^2+B^2) - R^2*C^2 = 0
из этого уравнения выражаем x через y и наоборот, подставляя вместо x и y такие выражения:
x = R*cos(beta)*cos(gamma)
y = R*cos(beta)*sin(gamma)
подстановка коэффициентов A,B,C:
A = tg(sigma) = z/y
B = tg(tetta) = z/x
C = tg(alfa), что известно.
Так как нам нужна проекция, то z = 0
Получаем:
x^2*tg(alfa)^2 + y^2*tg(alfa)^2 - R^2*tg(alfa)^2 = 0
после подстановки x и y получаем такие расчетные формулы:
x = R*tg(alfa)*sqrt(1-cos(beta)^2*sin(gamma)^2)
y = R*tg(alfa)*sqrt(1-cos(beta)^2*cos(gamma)^2)
Ну естественно по этим формулам по эллипсу ничего не движется, а движется по прямой под углом 45 градусов.
Помогите найти ошибку в расчетах.
Если направление координально не правильное, подскажите пожалуйста направление к решению задания.
Заранее благодарен.

 Профиль  
                  
 
 
Сообщение24.04.2008, 08:38 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
 !  PAV:
Наведите, пожалуйста, порядок в своих формулах, а то текущий вариант нечитабелен. Каждую формулу необходимо окружать одиночными знаками долларов (а тег math при этом самому ставить необязательно, он будет добавлен автоматически). Для записи греческих букв есть одноименные команды. Пример: $x = R\cdot \cos (\beta)\cdot \cos (\gamma)$
Код:
$x = R\cdot \cos (\beta)\cdot \cos (\gamma)$

 Профиль  
                  
 
 
Сообщение24.04.2008, 17:30 


01/12/06
463
МИНСК
Попробуйте ввести систему координат x',y' в вашей плоскости. Найдите связь между этими координатами и x,y. Дальше уравнение пересечения сферы и плоскости легко задаётся в координатах x',y'. А отсюда из уравнений связи находим проекцию.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group