Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Международная деятельность по стандартизации в машинной графике.Стр 1 из 17Следующая ⇒
Работы по протоколам послужили отправной точкой по развитию стандартизации в машинной графике. В 1974 г. в США был создан комитет по стандартизации машинной графики GSPC в АСМ/SIGGRAPH. На конференции в Сейлаке (Франция) в 1976 г. были сформулированы и обсуждены основные условия и проблемы стандартизации.
Основная цель стандартизации Переносимость графических систем, которая достигается стандартизацией интерфейса между графическим ядром системы (базовой графической системой), реализующим собственно графические функции, и моделирующей системой - проблемно-ориентированной прикладной программой, использующей функции графического ядра.
Базовая система должна обладать: независимостью от: вычислительных систем; языков программирования; области применения; графических устройств.
[СЛАЙД] Core-System
Существенным этапом в области стандартизации машинной графики явилась публикация проекта стандарта CORE-SYSTEM (GSPC-77).
Главные идеи, положенные в основу системы CORE:
4 2-мерные преобразования в декартовых и однородных координатах.(км) Двумерные преобразования (км)
Описание, конструирование, манипулирование и представление геометрических объектов являются центральными работами в графических системах. Рассмотрим математические методы для описания геометрических преобразований координат в двух, трехмерном случае. Далее большими буквами X, Y, Z будут обозначаться обычные декартовые координаты, а маленькие буквы x, y, z будут использоваться для обозначения т.н. однородных координат (о них ниже). Точку на плоскости можно переместить, если к ее координатам прибавить значение переноса. в плоском случае имеет вид: Xn=X+Tx; Yn=Y+Ty; или в векторной форме: Pn = P + T;
Где: X; Y; - исходные координаты точки, Tx; Ty; - величина переноса по осям, Xn; Yn; - преобразованные координаты. P = [XY]; - вектор-строка исходных координат, Pn = [Xn Yn]; - вектор-строка преобразованных координат, T = [Tx Ty]; - вектор-строка сдвига.
Объект можно перенести, если применить преобразование ко всем его точкам.
Масштабирование: Растянуть или промасштабировать точку (объект) относительно начала координат, можно умножив ее координаты на коэффициент масштабирования. Относительно начала координат имеет вид: Xn = X*Sx; Yn = Y*Sy; или в матричной форме: Pn = P* S; где: Sx; Sy - коэффициенты масштабирования по осям, - матрица масштабирования. Поворот: относительно начала координат имеет вид: или в матричной форме: Pn = P* R где: - угол поворота - матрица поворота
Столбцы и строки матрицы поворота представляют собой взаимно ортогональные единичные векторы. В самом деле, квадраты длин векторов-строк равны единице:
а скалярное произведение векторов-строк есть:
Так как скалярное произведение векторов:
где: - длина вектора A, - длина вектора B, а - наименьший положительный угол между ними,
то из равенства 0 скалярного произведения двух векторов-строк длины 1 следует, что угол между ними равен 900.
Аналогичное можно показать и для векторов-столбцов. Кроме того вектора-столбцы представляют собой такие единичные векторы, которые после выполнения преобразования, заданного этой матрицей, совпадут с осями. В самом деле, произведение первого столбца на матрицу есть: т.е. это единичный вектор вдоль оси X. Аналогично, произведение второго столбца на матрицу даст вектор [ 0 1]. Это позволяет сформировать матрицу, если известны результаты преобразования.
Двумерные преобразования в однородных координатах
Как видно из приведенных выше формул двумерные преобразования имеют различный вид. Сдвиг реализуется сложением, а масштабирование и поворот - умножением. Это различие затрудняет формирование суммарного преобразования и устраняется использованием двумерных однородных координат точки, имеющих вид: [ x y w];
где w - произвольный множитель не равный 0. Двумерные декартовые координаты точки получаются из однородных делением на множитель w: X =x/w; Y =y/w; Однородные координаты можно представить как промасштабированные с коэффициентом w значения двумерных координат, расположенные в плоскости с Z=w. В силу произвольности значения w в однородных координатах не существует единственного представления точки, заданной в декартовых координатах. Преобразования переноса, масштабирования и поворота в однородных координатах относительно центра координат все имеют одинаковую форму произведения вектора исходных координат на матрицу преобразования. Для переноса: Для масштабирования: Для поворота: 5. 3-х мерные преобразования. Суммарное преобразование. (км) 3-х мерные преобразования (км)
Аналогично тому, как двумерные преобразования описываются матрицами размером 3х3, трехмерные преобразования могут быть представлены в виде матриц размером 4х4. И тогда трехмерная точка (х, у, z) записывается в однородных координатах как:
(W*x, W*y, W*z, W), где W! =0. Если W! =1, для получения трехмерных - декартовых координат точки (X, Y, Z) первые три однородные координаты делятся на W. Отсюда, в частности, следует, что две точки Н1 и Н2 в пространстве однородных координат описывают одну и ту же точку трехмерного пространства в том и только в том случае, когда Н1 =cН2 для любой константы с, не равной нулю. Применяемая здесь трехмерная система координат является правосторонней. Трехмерный перенос является расширением двумерного: Масштабирование расширяется аналогичным образом: Матрица поворота вокруг оси х имеет вид: Матрица поворота вокруг оси у имеет вид: Матрица поворота вокруг оси z имеет вид:
Все эти матрицы преобразований имеют обратные матрицы.
Результатом произвольной последовательности поворотов вокруг осей х, у и z является матрица А, имеющая вид:
Подматрицу поворота размером 3х3 называют ортогональной, поскольку ее столбцы являются взаимно ортогональными единичными векторами. При повороте, задаваемом матрицей, эти единичные векторы совмещаются с осями х у и z. Иногда возникает необходимость определить матрицу поворота, соответствующую таким направлениям. Матрицы поворота сохраняют длину и углы, а матрицы масштабирования и переноса не сохраняют. Можно перемножить произвольное число матриц поворота, масштабирования и переноса. Результат всегда будет иметь вид 6 GDI. Контекст устройства.(км) GDI (км) Графические функции из состава WIN API объединены в отдельную группу – подсистему GDI ( Graphics Device Interface - интерфейс с графическими устройствами). Для предоставления приложениям графических возможностей Windows имеет набор функций, называемый интерфейсом с графическим устройством - GDI. GDI можно представить себе как графическую машину, которую используют приложения Windows для отображения и манипулирования графикой. Функции GDI предоставляют вашему приложению возможности рисования, которые не зависят от используемого устройства. Например, вы можете использовать одни и те же функции для организации вывода на дисплей EGA, на дисплей VGA и даже на принтер PostScript. Аппаратная независимость реализуется через использование драйверов устройств, которые переводят функции GDI в команды, воспринимаемые используемым устройством вывода.
Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 672; Нарушение авторского права страницы