Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Вниз

Как заполнить 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 вся ветка

Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.007 c
4-1211554502
sssyura
2008-05-23 18:55
2009.06.21
Панель инструментов


2-1241610748
dis12345
2009-05-06 15:52
2009.06.21
из какой ячейки вызван DblClick


2-1241512085
bagos
2009-05-05 12:28
2009.06.21
sql запрос с join


15-1234784192
Rule
2009-02-16 14:36
2009.06.21
Ура хвастаюсь, свершилось. Началось внедрение нашего ПО в Стрим.


15-1239357142
Kostafey
2009-04-10 13:52
2009.06.21
Посоветуйте почтовую программу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский