|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Примеры составных преобразованийПорядок следования отдельных преобразований имеет важное значение для составного преобразования. Например, если применяется поворот, затем масштабирование, а затем сдвиг, получается совершенно другой результат, чем если бы сначала был применен сдвиг, затем поворот, а затем масштабирование. В GDI+ построение составных преобразований осуществляется слева направо. Если S, R и T являются матрицами масштабирования, поворота и сдвига, соответственно, тогда произведение SRT (именно в таком порядке) является матрицей составного преобразования, которое сначала масштабирует, затем поворачивает, а затем осуществляет сдвиг. Матрица, равная произведению SRT, отличается от матрицы, являющейся произведением TRS. Одной из причин важности порядка выполнения преобразований является то, что такие преобразования, как поворот и масштабирование, осуществляются относительно начала координат. Масштабирование объекта, центрированного по началу координат, дает другой результат, чем масштабирование объекта, который куда-либо сдвинут относительно этой точки. Аналогично, поворот объекта, центрированного по началу координат, дает другой результат, чем поворот объекта, который куда-либо сдвинут относительно этой точки. В следующем примере комбинация масштабирования, поворота и сдвига (именно в таком порядке) используется для конструирования составного преобразования. Аргумент Append, передаваемый методу RotateTransform, указывает на то, что поворот будет выполняться после масштабирования. Аналогично, параметр Append, передаваемый методу TranslateTransform, указывает, что сдвиг должен следовать за поворотом. Значения Append и Prepend являются членами перечисления MatrixOrder. ß-------------- The following example makes the same method calls as the preceding example, but the order of the calls is reversed. The resulting order of operations is first translate, then rotate, then scale, which produces a very different result than first scale, then rotate, then translate.
One way to reverse the order of individual transformations in a composite transformation is to reverse the order of a sequence of method calls. A second way to control the order of operations is to change the matrix order argument. The following example is the same as the preceding example, except that Append has been changed to Prepend. The matrix multiplication is done in the order SRT, where S, R, and T are the matrices for scale, rotate, and translate, respectively. The order of the composite transformation is first scale, then rotate, then translate.
The result of the immediately preceding example is the same as the result of the first example in this topic. This is because we reversed both the order of the method calls and the order of the matrix multiplication.
В следующем примере осуществляются те же вызовы методов, что и в предыдущем, но порядок вызова методов меняется на обратный. Получающееся при этом составное преобразование (сдвиг, поворот, масштабирование) дает результат, принципиально отличающийся от результата выполнения исходного преобразования (масштабирование, поворот, сдвиг). ß-----------
Первым способом изменения порядка выполнения отдельных преобразований, формирующих составное преобразование, на обратный является изменение на обратный порядка вызовов методов. Второй способ управления порядком операций заключается в изменении значения параметра порядка следования матриц. Следующий пример полностью аналогичен предыдущему, но в нем параметр Append заменен на Prepend. Перемножение матриц осуществляется в порядке SRT, где S, R и T являются матрицами масштабирования, поворота и сдвига соответственно. При применении составного преобразования сначала осуществляется масштабирование, затем поворот, а затем сдвиг. ß-----
Результаты, полученные в рассмотренном примере и самом первом примере данного раздела, ничем не отличаются друг от друга. Это объясняется тем, что были изменены на обратный как порядок вызовов методов, так и порядок выполнения умножения матриц.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |