Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2010, 13:09   #1
WhiteBard
 
Регистрация: 08.04.2008
Сообщений: 6
По умолчанию Орнаменты в Delphi

Добрый день. Время подходит к диплому... Нужно написать программу для построения орнаментов на Delphi. Прога должна строить 2D-орнамент по заданной элемнтарной ячейке (параллельным переносом в разные стороны, симметрией и т.д.).
Может кто-нибудь когда-то занимался подобной прогой. Если есть у кого-нибудь нароботки, поделитесь (можно на других языках программирования). Также с удовольствием приму ссылки на книги, статьи и т.д. на данную тему.
WhiteBard вне форума Ответить с цитированием
Старый 29.10.2010, 13:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Начни с поиска примеров по фракталам - имхо самое оно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2010, 13:43   #3
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

если есть желание стучи в аську я сделаю тебе диплом
fbus вне форума Ответить с цитированием
Старый 30.10.2010, 02:01   #4
WhiteBard
 
Регистрация: 08.04.2008
Сообщений: 6
По умолчанию

Фракталы - это немного не то. Нужно именно орнаменты. Отличие в том, что фракталы строятся графическими способами, а мне нужно непосредственно работать с элементарной ячейкой (картинкой).
fbus, если сам ничего не придумаю, то стукну в аську.
WhiteBard вне форума Ответить с цитированием
Старый 30.10.2010, 03:56   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Поясните что есть "орнамент"... И про "элемнтарная ячейка" тоже...
А лучше нарисуйте схемку что куда...

Да... И в каком виде нужен результат?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 30.10.2010, 11:50   #6
WhiteBard
 
Регистрация: 08.04.2008
Сообщений: 6
По умолчанию

Орнамент — узор, основанный на повторе и чередовании составляющих его элементов. Элементарная ячейка - эта та часть орнамента, которая повторяется (т.е. на основании которой и строится орнамент). Если немного углубиться, то вообще, существует несколько видов таких ячеек. Но если есть прога для построения орнамента на основании одного вида ячейки, то под другие переделать не проблема.
Препод конкретного задания на прогу не дал, т.к. вообще я пишу диплом по геометрии, а прога будет приложением (поскольку специальность у меня математик и системный программист). Я себе представляю это так: открываем картинку через диалоговые окошки, выбираем тип ячейки. Соответственно выбранному типу у нас на картинке будет выбираться определенная область, которая и будет являться "элементарной ячейкой". Затем на ее основании строится орнамент. Далее нужно будет еще добавить возможность строить орнаменты не только параллельным переносом, но и, например, с использованием осевой симметрии.
WhiteBard вне форума Ответить с цитированием
Старый 12.01.2011, 10:34   #7
WhiteBard
 
Регистрация: 08.04.2008
Сообщений: 6
По умолчанию

И снова здравствуйте =)
Я продолжаю работу над проектом. По ходу дела у меня возникло несколько вопросов. Может кто поможет довести програмку до ума.
В общем, на данный момент есть модуль, строящий ковер Серпинского. Правда это фрактал, и я не уверен, что его со 100%-ой вероятностью можно назвать орнаментом, т.к. это немного разные понятия. Его, если препод утвердит, планирую прикрепить к основной программе.
Итак, что я имею на данный момент в основной проге. Есть 2 TImage: в один грузится исходное изображение, во втором получаем орнамент. Собственно из первого TImage мы выбираем элементарную ячейку (часть изображения или его целиком) и, скопировав выделенный фрагмент во второй TImage, параллельным переносом строим орнамент.
Но, я сообразил лишь как выделить прямоугольную область. Однако элементарные ячейки могут иметь форму ромба, параллелограмма и гексагональную форму (см. приложение). Возникает вопрос, возможно ли в Delphi из TImage выбрать и скопировать область подобной формы?
Другой вопрос связан со способом построения. Я пока реализовал только параллельный перенос. Но существует еще зеркальная и осевая симметрия. Хотелось бы с вашей помощью их тоже реализовать.

P.S. Есть правда большое желание разобраться в этой теме. Прошу вашей помощи. Думаю, данный проект в дальнейшем еще кому-нибудь пригодиться.
Изображения
Тип файла: jpg Reshetki.jpg (152.5 Кб, 135 просмотров)
Вложения
Тип файла: rar Ornaments.rar (180.2 Кб, 19 просмотров)
WhiteBard вне форума Ответить с цитированием
Старый 13.01.2011, 06:12   #8
WhiteBard
 
Регистрация: 08.04.2008
Сообщений: 6
По умолчанию

И еще вопрос, как сделать так, чтобы рамка, при помощи который мы выбираем часть изображения, не могла выбегать за пределы этого самого изображения?
WhiteBard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27