Вниз
Скачать: CL | DM;

Как заполнить bitmap неперекрещивающимися фигурами в цикле?   Найти похожие ветки 

← →
Dr.Andrew   (2009-04-17 18:00) [0]

Добрый день, Мастера!
Подскажите как можно квадратный битмап, например, 32 пиксела на 32 пискела заполнить неперекрещивающимися фигурами (круги, треугольники, многоугольники) в цикле и с использованием ScanLine[y]. Буду весьма признателен за практический пример. Спасибо.


← →
{RASkov} ©   (2009-04-17 18:34) [1]

Что-то не понятно

> [0] Dr.Andrew   (17.04.09 18:00)
> Буду весьма признателен за практический пример

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


← →
clickmaker ©   (2009-04-17 18:41) [2]

> неперекрещивающимися фигурами (круги, треугольники, многоугольники)
> в цикле

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


← →
clickmaker ©   (2009-04-17 18:45) [3]

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


← →
Dr.Andrew   (2009-04-17 19:23) [4]

спасибо за идеи и дискуссию.

1. если бы был код, то было бы легче, но я и попросил помощи, чобы хоть представить себе каким он может быть.

2. порядок фигур значения не имеет, так битмап должен заполняться только одним типом фигур, например, круг. Но, с варьируемым диаметром от наименьшего до наибольшего.

clickmaker
спасибо в том что Вы пишите есть мне кажется интересная идея с регионами, Вы можете набросать хотя бы примерный и пусть даже неработающий код, чтобы хоть с чего то начать.

Спасибо.


← →
Denis__ ©   (2009-04-17 22:28) [5]

procedure ZapolnitBitmap(var bmp : TBitmap; ShapeType : Byte);
begin
 //Тут заполняем.
end;
P.S. Код даже компилитсо!


← →
Dr.Andrew   (2009-04-17 22:46) [6]

Спасибо Денис. Здорово. код просто гениальный. А если серьезно может быть кто-то видел что-то аналогичное? если никто из Мастеров не может привести хотя бы приближенный пример. В инете пересмотрел, но ничего конкретного не нашел. Буду благодарен любой ссылке по теме. Спасибо!


← →
Denis__ ©   (2009-04-17 23:36) [7]


> 2. порядок фигур значения не имеет, так битмап должен заполняться
> только одним типом фигур, например, круг. Но, с варьируемым
> диаметром от наименьшего до наибольшего.

1) проверяем, r >= rMin? нет - го4, да: круг с центром (r, r), проверяем, помещается ли он на битмап. если нет  r := r - 1, го1. Если да:проверяем пересекается ли он с чем-либо. да - го2, нет - го3
2) го1(r,r+1), го1(r+1, r), го4
3)рисуем круг(r, r, r), го1(r, r*2), го1(r*2, r), го4
4)выход

Чо-то я тут замудрил%), но кажется идея правильная))) Мб там где-то выход из рекурсии лишний.


← →
Германн ©   (2009-04-18 00:48) [8]


> Denis__ ©   (17.04.09 23:36) [7]

Автору идеи не нужны. Ему нужен именно код!
> пусть даже неработающий

Есть такие новички, которым нужна некая "рыба", которую они могли бы пробовать переделать не прочитав прежде никаких учебников.

P.S.
Не имею в виду данного автора. Просто мне попадались и такие новички, которые могли открыть уже созданный проект, а вот создать новый затруднялись :)


← →
Dr.Andrew   (2009-04-18 01:04) [9]

Спасибо за идеи и соображения по поводу автора.

Германн
Зачем же всех под одну геребенку. Здесь ведь диссукия с Мастерами и если даже нет кода есть возможно обсудить идею и обсудить ее так чтобы стало понятно для реализации. А после меня эту тему будут читать тысячи пользователей, среди которых вероятно будут и те, кому эти рассуждения так же будут интересны как мне. Так что не стоит так грубо отзываться об авторе вопроса в дискуссионном клубе. Спасибо.

Denis
Спасибо, идея понятна, попробую что-то реализовать.

Есть еще идеи или примеры кодов? в том чиле и в инете, которые мне не попадались?

Спасибо.


← →
Германн ©   (2009-04-18 01:19) [10]


> Dr.Andrew   (18.04.09 01:04) [9]
>
> Спасибо за идеи и соображения по поводу автора.
>
> Германн
> Зачем же всех под одну геребенку. Здесь ведь диссукия с
> Мастерами и если даже нет кода есть возможно обсудить идею
> и обсудить ее так чтобы стало понятно для реализации. А
> после меня эту тему будут читать тысячи пользователей, среди
> которых вероятно будут и те, кому эти рассуждения так же
> будут интересны как мне. Так что не стоит так грубо отзываться
> об авторе вопроса в дискуссионном клубе. Спасибо.

А я разве "всех под одну гребёнку"?
Я сказал "есть такие".
Если ты не "такой", то подтверди это!


← →
Dr.Andrew   (2009-04-18 02:18) [11]

Спасибо. Мастера и этого форума.

Герман, я уже Вам ответил, что здесь обсуждаются идеи алгоритма, и я буду признателен любым идеям. Пожалуйста, не используйте дискуссию, я так полаю интересную не только мне в пустословие. Если есть что сказать по делу - пишите, а нет не мешайте дискуссии. Доказывают дураки. а умные учатся и обсуждают. Спасибо.


← →
Германн ©   (2009-04-18 02:39) [12]


> Dr.Andrew   (18.04.09 02:18) [11]
>
> Спасибо. Мастера и этого форума.
>
> Герман, я уже Вам ответил

Мой ник "Германн".
Примите и прочь!


← →
Германн ©   (2009-04-18 02:56) [13]


> Dr.Andrew   (18.04.09 02:18) [11]
>
> Спасибо. Мастера и этого форума.
>
> Герман, я уже Вам ответил, что здесь обсуждаются идеи алгоритма,
>  и я буду признателен любым идеям. Пожалуйста, не используйте
> дискуссию

Хм.А где тут "дискуссия"?
Тут есть только
> 1. если бы был код, то было бы легче, но я и попросил помощи,
>  чобы хоть представить себе каким он может быть.
>

Имхо, "вечные троешники" идут лесом!


← →
Dr.Andrew   (2009-04-18 17:37) [14]

Германн

Лично для Вас - если человек дурак - то это надолго.


← →
Denis__ ©   (2009-04-18 17:45) [15]

Dr.Andrew, Вы далеко продвинулись? Может наработки покажете, код? Тогда узнаем, кто тут дурак.


← →
Германн ©   (2009-04-19 01:21) [16]


> Dr.Andrew   (18.04.09 17:37) [14]
>
> Германн
>
> Лично для Вас

Если уж лично для меня, то не могу не ответить.
Дискуссия (от лат. discussio — рассмотрение, исследование), публичное обсуждение какого-либо спорного вопроса, проблемы; спор. Двумя важнейшими характеристиками дискуссии, отличающими её от других видов спора, являются публичность (наличие аудитории) и аргументированность. Обсуждая спорную (дискуссионную) проблему, в которой каждая сторона, оппонируя мнению собеседника, аргументирует свою позицию.
(с)  wiki.
А тут никакой дискуссией никогда и не пахло. Был только очень надоедший многим "дайте код".
Типичная позиция троешника, который в течение учебного периода никак себя не затруднял. А вот к решающим испытаниям решил срочно получить что-то хотя бы на тройку.

"Ты всё пела - это дело! Так поди же попляши."
Примите и прочь.

P.S. А дураком (или как иначе) можешь обзывать меня хоть в каждом своём посте. Мне это абсолютно до лампочки,


← →
test ©   (2009-04-19 12:05) [17]

Почитай про изометричискую проекцию в играх, там как раз таки строиться очередь вывода, и перекрещивающиеся не выводятся.


← →
test ©   (2009-04-19 12:11) [18]

Denis__ ©   (18.04.09 17:45) [15]
Dr.Andrew   (18.04.09 17:37) [14]
Вам везет что мастера не подошли, ветка бы исчезла вместе!


← →
test ©   (2009-04-19 12:16) [19]

>>Вам везет что мастера не подошли, ветка бы исчезла вместе!
Вместе с вашими шедеврами!


← →
antonn ©   (2009-04-19 12:53) [20]


> Dr.Andrew   (17.04.09 18:00)

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


← →
int64   (2009-04-19 14:07) [21]

Dr.Andrew   (17.04.09 18:00)  

Фигуры из какого-то набора? Какой критерий заполнения: по количеству фигур, по покрытию площади?
Зачем в постановке задачи: "битмап", "в цикле", "ScanLine"?

Какого вам практического примера, когда вы задачу сформулировать не можете.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.012 c
13-1120595885
vveird
2005-07-06 00:38
2009.06.21
Технология .NET


1-1211471281
a_priori
2008-05-22 19:48
2009.06.21
работа с таймером


15-1239229185
Хитрий Лис
2009-04-09 02:19
2009.06.21
Гууглмапс - странные объекты


15-1239871463
12
2009-04-16 12:44
2009.06.21
«Интерфейс пользователя» → Диалоги


15-1239797316
DynaBlaster
2009-04-15 16:08
2009.06.21
Проектирование БД, часть 2




   Наверх