Читайте также:
|
|
Данный тип в MAXScript реализует матрицу с заданными программистом размерами
Литералы
Литералов для задания матриц произвольного размера не предусмотрено
Конструкторы
Матрица задается следующим образом
BigMatrix Число Число
Первый параметр указывает количество строк, второй – столбцов.
Свойства
Для матриц определены два свойства
Матрица. rows
возвращает количество строк в матрице и
Матрица. columns
количество столбцов. Оба свойства доступны только для чтения.
Операторы
Для матриц, кроме двух операций сравнения, равенства и неравенства
Матрица_1 = = Матрица_2
Матрица_1! = Матрица_2
определена так же операция сложения
Матрица_1 + Матрица_2
Матрицы складываются поэлементно. Попытка сложить матрицы с разным количеством строк или столбцов приводит к ошибке.
Операция индексирования для матрицы определена следующим образом.
Матрица [ Число ]
возвращает объект типа BigMatrixRowArray, который представляет собой не что иное, как одномерный массив и является строкой матрицы. Номер строки определяется числом, стоящим в квадратных скобках. Естественно, к любому элементу полученного массива доступ осуществляется обычным способом.
Объект_типа_BigMatrixArray [ Число ]
Поэтому элемент матрицы можно прочитать или записать так
Матрица [ Число_1 ] [ Число_2 ]
Первое число указывает строку матрицы, второе – столбец.
Доступ к столбцу матрицы не определен.
Методы
Как это ни странно, но метод копирования для матриц произвольного размера не определен.
Функция
invert Матрица
вычисляет обратную матрицу, то есть такую, которая при умножении на исходную дает единичную. Следует только отметить, что обращение производится “на месте”, то есть если записать такой скрипт
m1 = invert m
где m – матрица произвольного размера, то не следует думать, что Вы получите две матрицы, прямую и обратную. На самом деле и матрица m и матрица m1 будут иметь одно и то же значение. Строго говоря, реально у Вас получится одна матрица с разными именами m и m1, как это и описано в главе “Присвоение значения по ссылке”. Поэтому при работе с матрицами операцией присвоения надо пользоваться с осторожностью. Еще одна особенность обращения матриц состоит в том, что оно определено только для “квадратных” матриц, у которых число строк равно числу столбцов.
Транспонирование матрицы осуществляется с помощью функции
transpose Матрица
Результатом является матрица, у которой элемент в строке i и столбце j равен элементу в строке j и столбце i исходной матрицы. Транспонирование так же осуществляется “на месте”.
Функция
clear Матрица
освобождает память, занимаемую указанной матрицей, и устанавливает ее размерность ноль на ноль.
Если надо увеличить или уменьшить размерность матрицы, то для этого используется функция
setSize Матрица Число_1 Число_2
Первое число задает новое количество строк, второе – столбцов. Элементы старой матрицы при этом не сохраняются, указанная матрица, получив новую размерность, заполняется “мусором”.
Проще всего заполнить матрицу с помощью функции
identity Матрица
при этом указанная матрица заполнится нулями, а диагональные элементы получат значение 1.0. Последняя функция картирована, то есть может работать как с одиночной матрицей, так и с массивом, составленным из матриц.
Дата добавления: 2015-10-31; просмотров: 159 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Произвольный поворот | | | Прямоугольник |