Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование мультимедиа
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
aveschekist
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
1

Переход от трехмерных координат к двумерным

25.03.2012, 21:10. Просмотров 2211. Ответов 1
Метки нет (Все метки)

Собственно проблема в следующем:
Необходимо используя матрицу преобразования привести всевозможные действия над фигурой.
Сам принцип матрицы преобразования ясен, только вот не могу понять как после использования данной матрицы преобразовать трехмерные координаты в двумерные. Подскажите как это сделать, либо что почитать по данной теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 21:10
Ответы с готовыми решениями:

Генерация трехмерных ландшафтов
Добрый день. Подскажите пожалуйста, что можно изучить по данной теме, может...

Способы задания трехмерных каркасных объектов и алгоритмы построения их проекций
Пожалуйста, можете описать способы задания трехмерных каркасных объектов и...

Программа для рисования трехмерных объектов на оси координат
Не знаю в какой раздел вставить. В общем мне нужно создать свою программу...

Проекция трехмерных координат на плоскость.
Приветствую! Бьюсь уже большое время над одной важной для меня проблемой -...

Перевод трехмерных координат в двумерные
Может, есть у кого готовая программа или идея, как преобразовать...

1
za5
442 / 346 / 32
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
01.04.2012, 23:00 2
декомпилировал одну из длл-ок xna:
разумеется, на самом деле код так не выглядел.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    /// <summary>
    /// Projects a 3D vector from object space into screen space.
    /// </summary>
    /// <param name="source">The vector to project.</param><param name="projection">The projection matrix.</param><param name="view">The view matrix.</param><param name="world">The world matrix.</param>
    public Vector3 Project(Vector3 source, Matrix projection, Matrix view, Matrix world)
    {
      Matrix matrix = Matrix.Multiply(Matrix.Multiply(world, view), projection);
      Vector3 vector3 = Vector3.Transform(source, matrix);
      float a = (float) ((double) source.X * (double) matrix.M14 + (double) source.Y * (double) matrix.M24 + (double) source.Z * (double) matrix.M34) + matrix.M44;
      if (!Viewport.WithinEpsilon(a, 1f))
        vector3 /= a;
      vector3.X = (float) (((double) vector3.X + 1.0) * 0.5) * (float) this.Width + (float) this.X;
      vector3.Y = (float) ((-(double) vector3.Y + 1.0) * 0.5) * (float) this.Height + (float) this.Y;
      vector3.Z = vector3.Z * (this.MaxDepth - this.MinDepth) + this.MinDepth;
      return vector3;
C#
1
2
3
4
5
6
7
8
9
    private static bool WithinEpsilon(float a, float b)
    {
      float num = a - b;
      if (-1.40129846432482E-45 <= (double) num)
        return (double) num <= 1.40129846432482E-45;
      else
        return false;
    }
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 23:00

Преобразование трехмерных координат точки в двухмерные координаты экрана
Пусть мы имеем 1. Точку с координатами (x,y,z) ; 2. Координаты камеры...

Переход между системами координат
Добрый вечер. Буду благодарна за помощь. Имеется фигура построенная в...

Переход от параметрической системы координат к прямоугольной
х= 3*ctg(t); y= 2/sin(t) Как переити от параметр системы координат в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru