По паттерну «Компановщик» организованы классы для рисования на холсте. Все примитивы (CRectangle, CEllipse, CLine ) наследуются от класса CPrimitive. Класс CDrawObject - абстрактный там содержится метод Draw, isInsidePoint(x,y) - попадает ли координата x,y объект. Класс CCompositePrimitive представляет собой составные объекты (сгруппированые из CRectangle, CEllipse, CLine )
http://img155.imageshack.us/img155/8018/classes2j.png
Хотел бы услышать какие-то советы: как организовать маркеры ( ткнул в объект, выводится его обрамляющая рамка, работая с ней, можно изменять размеры, координаты и пр. объекта.)
и соединения между объектами, т.е. грубо говоря линии, которые соединяют два объекта и перемещаются если перемещается объект.