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

> Внимание!

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

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


Fanat
***

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

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


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

Не знаю с чего начать.
Как создать окно где будут прорисовываться обьекты?
Для описания,например,прямоугольников, лучше всего, создать тип, который хранит в себе 4 координаты по Ох и Оу?
Как реализовать прорисовку линий между этими координатами?
Почему ColorDialog не растягиваеться?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 9.09.2007 21:40
Сообщение #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)
}
...
};
Больше ничего пока сказать не могу, не видя, как именно ты реализовал работу с фигурами... Если хочешь - присоедини свой проект (можно в приват)...
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 19.07.2025 4:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"