- •4.4. Геометрические абстрактные типы данных
- •4. Объекты и геометрические преобразования
- •4.1. Типы базовых объектов: скаляры, точки и векторы
- •4.2. Геометрическое определение базовых типов
- •4.3. Виды линейных пространств и их определения.
- •4.4. Геометрические абстрактные типы данных и возможные действия с объектами каждого типа.
- •4.5 Возможные действия с объектами каждого типа.
4.3. Виды линейных пространств и их определения.
Математическое определение векторного и аффинного пространства
Скаляры, точки и векторы можно рассматривать как элементы математических множеств.
В КГ используют разного рода абстрактные пространства для представления и манипулирования этими множествами объектов. В математике принято использовать такие абстрактные пространства для решения разного рода прикладных проблем — от решения дифференциальных уравнений до аппроксимации математических функций. Формальное определение тех пространств, которые представляют для нас интерес — векторного, аффинного и Евклидова, — приведем ниже. Нас интересуют только такие пространства, элементами которых являются геометрические типы.
Векторное пространство
Наиболее важным математическим пространством является векторное (линейное) пространство. Векторное пространство содержит две различные сущности — векторы и скаляры. В этом пространстве существуют правила объединения скаляров с помощью двух операций (сложения и перемножения), и, таким образом, определено скалярное поле.
Помимо скаляров векторное пространство содержит элементы другого типа — векторы. Над векторами определены две операции: сложение вектора с вектором и умножение вектора на скаляр. Примерами векторных пространств являются пространство геометрических векторов (направленных отрезков прямой) и пространство алгебраических векторов как совокупностей n действительных чисел.
В векторном пространстве можно комбинировать скаляры и векторы и создавать новые векторы с помощью операции умножения скаляра на вектор. Можно также комбинировать и векторы с помощью операции сложения векторов. Примерами математических векторных пространств являются n-группы действительных чисел, решение однородных линейных дифференциальных уравнений и геометрические операции над направленными линейными отрезками.
Строго говоря, в векторном пространстве отсутствуют такие понятия, как положение и расстояние. Как, например, определить расстояние между двумя дифференциальными уравнениями? Но такой вопрос и в голову никому не придет. Если в качестве векторного пространства для решения геометрических задач использовать пространство отрезков прямых, то возникнет множество сложностей, поскольку векторы в нем являются свободными, т.е. как и физические векторные величины, имеют модуль (длину) и направление, но не имеют точки приложения. Все дело в том, что в векторном пространстве отсутствуют точки, как атрибуты пространства, как его элементы. Векторы, показанные на рис.2, являются в векторном пространстве идентичными объектами.
Система базисных векторов, которая позволяет представить любой вектор в данном пространстве в виде набора коэффициентов разложения по этому базису, образует систему координат пространства. Но в векторном пространстве отсутствует возможность определить эту особую точку, к которой должны быть "привязаны" базисные векторы.
Информационное определение геометрических типов.
С точки зрения информатики необходимо иметь средство, позволяющее объявлять геометрические объекты в тексте программы независимо от их представления или реализации в данном компьютере. Такое объявление должно выглядеть примерно так:
vector u,v;
point p,q;
scalar a,b;
Тогда в программе можно записать операцию над данными некоторого геометрического типа в следующем виде:
q = p + a*v;
Но чтобы записать такую операцию нужно сначала определить функции, которые будут выполнять операции над данными заданных типов. А это в свою очередь потребует рассмотрения математических соотношений, которые требуется реализовать в этих функциях.
Аффинное пространство.
Эта проблема разрешается вводом в векторное пространство еще одного типа объектов — точки. Такое "дополненное" векторное пространство получило название аффинного. В аффинном пространстве определено множество точек (Р, Q, R,...), и единственная операция над ними— вычитание точек, результатом которой является вектор.
Таким образом - Аффинное пространство — это расширение векторного пространства, в которое включен дополнительный тип объектов — точка. В аффинном пространстве определена операция сложения точки и вектора, результатом которой является новая точка. Обратной ей является операция вычитания двух точек, результатом которой будет вектор.
Евклидово пространство.
В линейном векторном пространстве отсутствует способ измерения скалярных величин. Евклидово пространство — это расширение векторного пространства, в которое введена мера для измерения расстояния (размера).
Хотя аффинное пространство и содержит все элементы, необходимые для построения геометрических моделей, в нем отсутствует понятие расстояния между двумя точками, а соответственно и понятие длины вектора. Аффинное пространство, дополненное понятием расстояния (через меру длины), превращается в евклидово.
Евклидово пространство Е содержит скаляры (α,β,γ,...) и векторы (u,v,w,...) причем скаляры представляют собой действительные числа. В евклидовом пространстве вводится новая операция — скалярное произведение, операндами которой являются векторы, а результатом — скаляр.
Векторное, аффинное и евклидово пространства – это разные линейные пространства со своими аксиоматическими представлениями (определениями).
Во всех этих абстрактных пространствах объекты могут быть определены независимо от конкретного представления — они просто являются элементами некоторых множеств. Одна из основных концепций векторного пространства состоит в представлении любого вектора в терминах одного или нескольких множеств базисных векторов. Такое представление обеспечивает связь между абстрактными объектами и их реализацией, а взаимные преобразования одних представлений в другие приводят к геометрическим преобразованиям.
