Начало работы с Matrix3D (Silverlight) - PullRequest
2 голосов
/ 09 июля 2010

Хорошо, я абсолютно ничего не знаю о трехмерном проектировании, но мне нужно найти способ проецирования изображений в Silverlight (<Matrix3D/>) на основе некоторых предопределенных переменных, которые у меня есть.Я искал верхний и нижний примеры кода или действительно базовый набор статей " для глупостей ", но пока не нашел ничего, что имело бы смысл.Даже великая Академия хана не была достаточно простой для меня.Камеры, поле зрения, вращение - мой мозг просто не может обернуться вокруг этого материала.

Мне нужны следующие проекции:

  • Изометрические
  • Орфографический
  • Наклонный
  • Перспектива

Итак, мне предоставлено несколько переменных, таких как X, Y и иногда Z. Например, это -

<b>Type:</b> Orthographic
<b>X</b>:    70°
<b>Y</b>:    10°
<b>Z</b>:    20°

каким-то образом превращает это -> normal в это -> orthographic и

<b>Type:</b> Isometric
<b>X</b>:    314.7°
<b>Y</b>:     35.4°
<b>Z</b>:    299.8°

в это -> isometric

У меня есть другая информациянапример, координаты того, где изображение появляется на холсте, его ширина / высота и т. д., если эта информация тоже полезна.

Кто-нибудь знает о каких-либо ресурсах, которые могут это объяснить (пожалуйста, википедия - эти вещине имеет никакого смысла для меня).Или вы знаете, как работают эти вычисления (.NET, без WPF 3D-функций)?

Ответы [ 3 ]

1 голос
/ 09 июля 2010

Этот сайт имеет довольно хорошее представление о выполнении матричных операций в .net: http://www.simple -talk.com / dotnet / .net-framework / building-a-simple-3d-engine-with-silverlight /

Кроме того, взгляните на Википедию для некоторого фона на поворотах матрицы: http://en.wikipedia.org/wiki/Rotation_matrix

И вы никогда не ошибетесь с немного Петцольда: http://www.charlespetzold.com/blog/2009/07/Using-the-Matrix3DProjection-Class-in-Silverlight-3.html

Это также отличное введение в использование матриц для обработки линейных преобразований: http://polymathprogrammer.com/2008/09/01/cartesian-coordinates-and-transformation-matrices/

1 голос
/ 06 марта 2013

Прочитайте уроки здесь, чтобы получить математические материалы ... http://chortle.ccsu.edu/vectorlessons/vectorIndex.html#01

1 голос
/ 09 июля 2010

Хорошо. Matrix3D сам по себе является простым классом, поэтому сложно понять, что заполнять в матрице. Перед тем, как перейти к кодированию, прочитайте следующее:

  1. Любая книга по компьютерной графике
  2. 3D-программирование для Windows®: программирование трехмерной графики для Windows Presentation Foundation, Чарльз Петцольд
  3. В худшем случае, если у вас нет времени, прочитайте, по крайней мере, 3 главу книги OpenGL (только математика матриц преобразования).

Вы можете задаться вопросом, почему я прошу вас прочитать несколько огромных книг, в то время как вам нужно быстрое решение. На мой взгляд, программирование трехмерной графики будет очень простым, если вы поймете, что за этим стоит (это не сложно). Если нет, то вы потратите вдвое больше времени, пытаясь выяснить, почему ваша программа не выполняет то, что вы хотите.

...