IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Builder 6.0, Графический редактор
сообщение
Сообщение #1


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Требуеться создать примитивный расширяемый графический редактор.
Основные функции:
размещение двух типов обьектов- прямоугольник и треугольник.
обьекты можно создавать и двигать по окну при помощи мыши.
групповое создание обектов.
сохранение и загрузка.

Не знаю с чего начать.
Как создать окно где будут прорисовываться обьекты?
Для описания,например,прямоугольников, лучше всего, создать тип, который хранит в себе 4 координаты по Ох и Оу?
Как реализовать прорисовку линий между этими координатами?
Почему ColorDialog не растягиваеться?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Даже если описать функции которые выдают true при попадании в фигуру, то все равно необходимо узнать её координаты. Как это сделать?

Фигура вообще-то сама хранит свои координаты... То есть, смотри:

// Это - абстрактный базовый класс, ты не можешь создавать экземпляры этого класса
class
figure {
protected:
virtual bool isInside(TPoint &mouse) = 0;
};

class
triangle: public figure {
// здесь - признаки, характерные для треугольника
// Собственно, тут и храним 3 точки, образующие треугольник:
TPoint a, b, c;

virtual bool isInside(TPoint &mouse) {
... // проверяем попадание mouse в треугольник (именно образованный точками a, b, c)
}
...
};

class
rectangle: public figure {
// здесь - признаки, характерные для прямоугольника
// Прямоугольник определяется двумя точками: верхний левый и правый нижний угол:
TPoint leftUp, rightDown;

virtual bool isInside(TPoint &mouse) {
... // проверяешь попадание mouse в прямоугольник (определяемый полями leftUp и rightDown)
}
...
};
Больше ничего пока сказать не могу, не видя, как именно ты реализовал работу с фигурами... Если хочешь - присоедини свой проект (можно в приват)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Всем большое спасибо, обьекты двигаються,
Как бы теперь научиться сохранять элементы в файл и загружать из него?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Fanat   Builder 6.0   3.09.2007 23:55
мисс_граффити   1. Как создать окно где будут прорисовываться обье…   4.09.2007 0:34
Fanat   1. Как создать окно где будут прорисовываться обь…   4.09.2007 0:52
мисс_граффити   1. Ну, дело твоё. Я высказала свое мнение. Прислуш…   4.09.2007 1:35
Fanat   Не могла бы ты подсказать каук тогда узнать осущес…   4.09.2007 2:17
мисс_граффити   у меня только делфи под рукой, но, вроде, отлич…   4.09.2007 3:22
volvo   Та, которая в списке ближе к "вершине" (…   4.09.2007 3:54
мисс_граффити   ну это как вариант... а можно, например, ту, цент…   4.09.2007 18:35
Fanat   Спасибо за помошь, думаю всё примерно ясно. Остало…   4.09.2007 20:27
мисс_граффити   обработчик события OnMouseDown получает эти коо…   4.09.2007 20:35
Fanat   А как проверить нажата ли кнопка1 или кнопка2? Мне…   4.09.2007 21:28
мисс_граффити   пользуйся компонентами, для этого предназначенными…   4.09.2007 22:14
Fanat   Сделал, что по клику мышки появляеться прямоугольн…   4.09.2007 22:54
klem4   OnMouseMove   4.09.2007 22:58
Fanat   OnMouseMove То есть обрабатывать событие OnMous…   4.09.2007 23:22
volvo   Что значит "откуда"? Обработчик события …   4.09.2007 23:37
Fanat   Что значит "откуда"? Обработчик события…   4.09.2007 23:43
volvo   Сорри, но в том случае, если ты захочешь создать н…   4.09.2007 23:57
Fanat   Сорри, но в том случае, если ты захочешь создать …   5.09.2007 0:16
мисс_граффити   И MouseMove, и MouseUp, и MouseDown получают коорд…   5.09.2007 1:12
Fanat   И MouseMove, и MouseUp, и MouseDown получают коор…   5.09.2007 1:50
мисс_граффити   что такое rects? извини, по этому куску кода сложн…   5.09.2007 2:40
Fanat   что такое rects? извини, по этому куску кода слож…   5.09.2007 2:43
мисс_граффити   #include "rectangle.h" #include …   5.09.2007 3:06
volvo   Fanat, можно вопрос? Вот ты пишешь программу на С+…   5.09.2007 3:07
Fanat   Мисс_граффити, извини забыл, там вот что: struct …   5.09.2007 11:27
Fanat   привет volvo, сделал так как ты сказал.Немного раз…   10.09.2007 0:36
volvo   Фигура вообще-то сама хранит свои координаты... Т…   10.09.2007 1:40
Fanat   Всем большое спасибо, обьекты двигаються, Как бы т…   11.09.2007 2:31
volvo   Проходом по вектору, и вызовом для каждого его эле…   11.09.2007 3:06


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.05.2024 0:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name