Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Склеивание объектов 
:(
    Опции темы
former
  Дата 4.7.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: нет
Всего: 17



Подскажите пожалуйста, как можно склеить два объекта в один, например круг или элипс с прямоугольником?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Snowy
Дата 4.7.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Ну, например суперклеем...

Будь уж так добр, поясни, что тебе нужно...
PM MAIL   Вверх
former
Дата 4.7.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: нет
Всего: 17



Цитата(Snowy @  4.7.2007,  12:30 Найти цитируемый пост)
Ну, например суперклеем...


 smile 

Изучаю основы работы с векторными объектами. Остановился, пока, на трёх объектах: прямоугольник, круг и элипс. Теперь хотелось бы научиться склеивать объекты в один, т.е., допустим, пересекаются прямоугольник и круг, а в результате получить один объект.

Вот объекты:
Код

type
  pBlock = ^TBlock;
  TBlock = class(TObject)
    x1, y1: integer; //Кординаты 1 вершины
    x2, y2: integer; //Кординаты 2 вершины
    bcolor: TColor;  //Цвет
    procedure Draw(X,Y:integer; Color:TColor; Canvas:TCanvas);    
 end;

 pCircle = ^TCircle;
  TCircle = class(TObject)
    x1, y1: integer; //Кординаты 1 вершины
    x2, y2: integer; //Кординаты 2 вершины
    r:integer; //Радиус
    bcolor: TColor;  //Цвет
    procedure Draw(X,Y:integer; Color:TColor; Canvas:TCanvas);    
 end;



Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ______.png 14,86 Kb


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Snowy
Дата 4.7.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Похоже на работу с регионами.
Не совсем понятно, какого рода результат ты хочешь...
Ну а без регионов, используя твой подход, придётся создавать ещё один класс, рисующий стыкованный круг и прямоугольник...
А может тебе из просто закрасить внутри? Тогда стыка видно не будет... Если кисть одинаковая, конечно...
PM MAIL   Вверх
former
Дата 4.7.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: нет
Всего: 17



Цитата(Snowy @  4.7.2007,  13:43 Найти цитируемый пост)
Не совсем понятно, какого рода результат ты хочешь...


Snowy, я пытаюсь сделать, чтобы было, как в CorelDraw, Выделил группу объектов, склеил их или вычел один из другого и получил новый объект сложной формы. С прямоугольниками понятно, легко, а вот с другими объектами?

Цитата(Snowy @  4.7.2007,  13:43 Найти цитируемый пост)
А может тебе из просто закрасить внутри? Тогда стыка видно не будет... Если кисть одинаковая, конечно... 


Каким образом? Кисть одинаковая. Такой вариант подошёл бы, но поскольку объектов прямоугольника может быть несколько, то возникунут проблемы.


Я тут подумал, что можно было бы сделать следующим образом:
Код

type
  pBlock = ^TBlock;
  TBlock = class(TObject)
    CPoints:array of TPoint;
    bcolor: TColor;
    constructor Create(X,Y:integer);
    destructor Destroy; override;
    procedure Draw(X,Y:integer; Color:TColor; Canvas:TCanvas);
  end;

  pCircle = ^TCircle;
  TCircle = class(TObject)
    CPoints:array of TPoint;
    bcolor: TColor;
    constructor Create(X,Y:integer);
    destructor Destroy; override;
    procedure Draw(X,Y:integer; Color:TColor; Canvas:TCanvas);
  end;



Т.Е. в объекте каждой фигуры хранить масив вершин и работать потом с ними.




--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Alexeis
Дата 4.7.2007, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



former, а зачем нужен указатель на объект? Ведь объект сам по себе и так указатель.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
former
Дата 4.7.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: нет
Всего: 17



Цитата(Alexeis @  4.7.2007,  15:20 Найти цитируемый пост)
former, а зачем нужен указатель на объект? Ведь объект сам по себе и так указатель. 



Alexeis, согласен. Но в дальнейшем планирую сделать общий класс объектов, какой-нибудь TShape.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.