В строках 4-9 листинга 9.2 функция Gamelnitialization () подготавливает матрицу отображения. В строках 13-16 подготавливается матрица проецирования. Поскольку позиция наблюдения и перспектива не изменяются от кадра к кадру, их не нужно пересчитывать, как это обычно происходит в примерах программ, поставляемых с SDK DirectX. В нашем примере матрицы отображения и проецирования создаются только один раз и после этого не изменяются.
В строке 19 листинга 9.2 функция Gamelnitialization () загружает сетчатую модель, которая должна использоваться данным твердым телом. Это сетчатая модель тигра из SDK DirectX.
Инициализация объекта класса d3d_rigid_body начинается в строке 21. В строках 21-24 задаются вращательные характеристики тигра. Вероятно, вас интересует, откуда взяты значения вращательной инерции в строке 23. Они more…
Tag-Archive for » Применение «
Центростремительному ускорению соответствует центростремительная сила. Эта сила заставляет частицу отклоняться от прямолинейной траектории движения. Если бы вы сидели на вращающейся частице, вы бы чувствовали, что на вас действует сила, сбрасывающая вас с частицы, действующая в направлении, обратном направлению центростремительной силы. Вы бы почувствовали эту силу, поскольку вы не прикреплены намертво к вращающейся частице, и ваше тело стремится двигаться по прямой. Сила, противодействующая центростремительной, называется центробежной (centrifugal force).
Вот краткий вывод формулы для нахождения центростремительного ускорения с помощью конечных разностей. За незначительный интервал времени At центростремительное ускорение изменяет направление вектора скорости частицы, но не его величину, как показано на рисунке 9.8. На рисунке изменение скорости из-за действия more…
Related posts
А теперь, чтобы увидеть, как все описанное применяется на практике, используем платформу физического моделирования, рассмотренную в главе 2 «Имитация ЗО-графики с помощью DirectX*, для создания простой программы. Она будет отображать на экране двумерный треугольник, вращая его с помощью заданных матриц преобразований.
Применение платформы физического моделирования
Платформа физического моделирования облегчает процесс подготовки Direct3D к работе. Но это не значит, что все нужное будет сделано за вас. Вам придется создать проект для размещения программы в Visual Studio и настроить его конфигурацию. Затем нужно добавить код в функции платформы.
СОЗДАНИЕ ПРОЕКТА more…
Related posts
Масштабирование увеличивает или уменьшает расстояния между точками, но оно должно работать относительно некоторого центра. Представьте себе расширяющуюся сферу. Точки на краю этой сферы двигаются быстро, точки, более близкие к центру, двигаются медленнее. Точка в центре сферы совершенно неподвижна. Эта точка называется центром расширения или точкой расширения (expansion point).
Точно так же, как можно поворачивать объект вокруг произвольной точки, объект можно и масштабировать вокруг произвольной точки. Это выполняется так же, как и поворот.
Сначала точка расширения перемещается в начало координат. Затем выполняется масштабирование. После этого точка расширения перемещается в исходную позицию. Эта последовательность операций выражается такой формулой:2Р-преобразования и рендеринг_107
Сочетание преобразований more…
Related posts
Именно это нам и было нужно - мы смогли выразить новые координаты через старые координаты и угол поворота. По выведенным нами формулам легко вычислить координаты точки после поворота. Однако эти формулы удобнее представить в виде матрицы, и чаще всего так и делается. Определим матрицу, показанную ниже:
cos(6» ) -sin(0 )” sin(0 ) cos(0 )
R=
cos(-0) sin(-<9) -sin(-0) cos(-0)
Выполнять повороты точек можно, умножая их векторы смещения на матрицу R. Поэтому можно записать:
х' = xR
или в компонентном виде
[х' у']=[х у] more…
Related posts
Итак, теперь у нас есть готовый к применению класс d3d_point_mass. Давайте используем его в программе. Но прежде чем мы это сделаем, я хочу немного поговорить об освещении в Direct3D. Мы воспользуемся некоторыми возможностями Direct3D по моделированию освещения, чтобы получить в примере программы реалистично выглядящий шар.
ВКЛЮЧЕНИЕ МОДЕЛИРОВАНИЯ ОСВЕЩЕНИЯ В DIRECT3D more…
