Объекты и геометрические преобразования

средство, позволяющее объявлять геометрические объекты в тексте программы независимо от их представления или реализации в данном компьютере. Выглядеть такое объявление должно примерно таким образом:

vector u,v; point p,q; scalar a,b;

Для определения абстрактных типов в объектно-ориентированных языках программирования, подобных С++, можно применить такие средства, как классы и перегрузку операторов. Это позволяет записать в программе операцию над данными некоторого геометрического типа в следующем виде1:

q = p+a*v;

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

4.1.4. Геометрические абстрактные типы данных

Рассмотрев понятия скаляра, точки и вектора с трех точек зрения, мы получили математическую и информационную "оболочку", в которой будем в дальнейшем работать с геометрическими объектами. Скаляры- это действительные числа, по отношению к которым можно применять обычные операции сложения и умножения. Геометрические точки - это положения в пространстве, а векторы - направленные отрезки в пространстве. На эти объекты распространяются правила, определенные в абстрактном аффинном пространстве. В программе можно определить абстрактные типы данных для представления базовых типов объектов и специфицировать операции, подчиняющиеся этим правилам.

Теперь рассмотрим, как можно использовать базовые типы для выполнения геометрических операций и формирования новых объектов. Будем обозначать в дальнейшем скаляры буквами греческого алфавита а, Р, у,…, точки- прописными буквами латинского алфавита P,Q,R,…, а векторы- строчными буквами латинского алфавита u,v,w, .... Позже, в разделе 4.3, мы введем в рассмотрение и другие абстрактные математические объекты, которые будем обозначать полужирными буквами латинского алфавита. До сих пор мы никак не затрагивали вопрос о системе отсчета, например системе координат, а потому векторы и точки являются для нас пока что абстрактными объектами, а не объектами, представленными в определенной системе отсчета. Модуль вектора v (или его длина, абсолютная величина - magnitude) - это действительное число, которое обозначим |v|. Операция умножения скаляра на вектор обладает следующим свойством (см. приложение Б):


⇐ Предыдущая| |Следующая ⇒