|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.05.2015, 22:59 | #1 |
Регистрация: 25.06.2013
Сообщений: 3
|
Система классов, графические примитивы и операции над множествами
Создаю систему классов для реализации графических примитивов на плоскости (круг, квадрат, треугольник) с реализацей операций над множествами
один класс-предок и три класса-потомка, для каждой из фигур вывод осуществляется посредством псевдографики в программе должен быть реализован полиморфизм, так что возникла проблема с виртуальными функциями а именно с функцией пересечения понятия не имею как организовать ее работу правильно отчаявшись, я здесь Virtshape.cpp Код:
main.cpp Код:
Virtshape.h Код:
Последний раз редактировалось FatSlowpoke; 29.05.2015 в 18:39. |
29.05.2015, 08:46 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Например каждая фигура выдает массив треугольников ее описывающий, после чего проверяем треугольники на пересечение. В этом случае виртуальной будет функция разбиения на треугольники а не сама функция пересечения.
Другой вариант - виртуальный метод, который проверяет находится ли данная точка внутри фигуры ну и далее каждая фигура знает свои точки и проверяет каждую из них (хотя с окружностю могут возникнуть проблемы). Ну и третий вариант - запрашивать и фигуры ее тип и далее действовать в зависимости от тип фигуры. Например пересечения двух окружностей это одно а пересечение двух квадратов - другое. |
29.05.2015, 18:39 | #3 |
Регистрация: 25.06.2013
Сообщений: 3
|
Ну я вообще изначально выбрала третий вариант
То есть я беру координаты двух окружностей, ищу их пересечение И, если нахожу, то ставлю курсор в эту позицию и заполняю пересечение определенным символом и определенным цветом Но, почему то, написанная мной функция для двух окружностей не работает |
29.05.2015, 21:02 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
29.05.2015, 22:46 | #5 |
Регистрация: 25.06.2013
Сообщений: 3
|
наверное, Вы правы, потому что мне пришлось попотеть
но, к сожалению, переделывать уже поздно вот функция xCo, yCo - координаты центра окружности координаты центра первого круга: 20, 15; радиус 6 координаты центра второго круга: 30, 15; радиус 6 Код:
Последний раз редактировалось FatSlowpoke; 29.05.2015 в 23:44. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Операции над множествами | olga_v95 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 11.02.2013 22:04 |
Операции над множествами(javascript) | mashentsia2375 | Помощь студентам | 0 | 30.01.2013 20:45 |
Операции над множествами | britva666 | Помощь студентам | 2 | 23.06.2009 20:33 |