Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Господа, помогите дописать прогу на delphi
Форум Guitar.ru > Общение > Разговоры на гитарную тему
Страницы: 1, 2
max
Необходимо в это проге http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=6875&filename=ImgProc.rar сделать следующее добавить кнопку, при нажатии на которую находится путь минимальной стоимости из точки (x0,y0) в точку (x1,y1). Переходить можно из точки (x,y) в точки (x,y-1), (x-1,y), (x-1,y-1). Стоимость перехода равна (3*256-расстояние между цветами пикселов) * 2 для переходов первых двух видов (по сетке) и * 3 для точек последнего вида (по диагонали). Под расстоянием между цветами пикселов понимаем |R1-R2|+|G1-G2|+|B1-B2|. Т.е. требуется пройти по кривой с максимальным суммарным изменением цветов. Дополнительное предположение: оптимальный путь не может выходить за пределы прямоугольника (x0,y0)-(x1,y1). вот такие пирожки((( Кнопку уже создал, написал немного алгоритм, но мля не знаю, что делать дальше, помогите плиз ТТ
Alex
а когда надо? проста щас времени нету- сессия(
Vinnie
сессия - это да... Если не секрет, нахрена это нужно?
max
сегодня надо...(((( ну пажалуйста там вроде не много на зачёт надо, препод охренел такие задачи давать на зачёт Т___Т
max
Ааааа, ну помогите....((((
Vinnie
На мой скромный взгляд - либо здесь хтрость какая, либо можно напрямки динамическим программированием))
Vinnie
Кстати, я вообще не дельфи никогда не писал, поэтому посмотреть не могу, что там за картинка?
max
ага препод грил, что там надо динамическим программированием, только он нам на практике не показывал что это(((
max
да любую картинку грузишь туда
Vinnie
зайди на сайт lib.mexmat.ru авторизируйся под ником reader пас @#LiB#@, скачай книгу Вентцель Введение в исследование операций, книга очень слабая но по ней можно быстро выучить азы
Vinnie
на дельфях и паскале никогда не писал, поэтому в написании помочь не могу. А где ты учишься?
max
Матфак ИГУ, 2ой курс...
max
фак она большая сильно, мне её на моём канале целый день тянуть(((
fretboard
Вот, например, похожие задачи: http://altnet.ru/~kitnet/www/metod/book3/doc1/str1.htm
max
фак хз как с этими битмапами работать
Борис
Первая задача из ссылки fretboard(респект) с небольшими модификациями как раз то, что тебе надо. Алгоритм отличается только тем, что максимум на каждом шаге заполнения матрицы выбирается не из двух, а из трех чисел.
Борис
в каком смысле как? Я с дельфи плохо знаком, но должны же там быть функции возвращающие цветовой код пикселя в РГБ
Борис
или хотя бы что то навроде R(x,y) G(x,y) B(x,y)?
max
в том-то и дела что неизвестно(((( алгоритмически я вроде бы теперь понимаю, но реализовать не знаю как
Борис
Т.е. надо понять как спросить про цвет пикселя с заданными координатами
max
как раз в процедуре последней TImgProcForm.MinPriceClick более менее сделано, осталось толко цикл этот for запустить по заполнению массива млин ещё указатели, я тоже хз как с ними работать пока бы сделать для крайних противополжных точек картинки
Борис
ща попробую поискать
max
посмотри процедуру TImgProcForm.btnGrayClick там ка-то через тип TRGBTRIPLE это делается
max
не пойму как этот scanline работает
Борис
т.е. это не ты писал?
Борис
какой скэнлайн?
Борис
я не могу посмотреть рар на работе :((( не разрешают ставить
fretboard
Насколько я помню, доступ к цвету отдельного пикселя - что-то вроде TBitmap.Canvas.Pixels[x,y], цвета описываются типом RGBColor.Color. Точнее глянь в документацию.
max
неееет, это я не писал, я пичсал только процедуру последнюю, которая связана с кнопкой maxprice + все типы которые к ней специально прилагаются, моя задача написать эту процедуру как в задании написано, мляяяя
Борис
ты используещь класс TBitmap?
Борис
таакё
Борис
по клавишам не попадаю :(
Борис
В каком виде хранится картинка?
max
ты посмотри в проге, картинка в виде файла любого на винте jpg
max
я в задании маленько неправильно написал надо так: Переходить можно из точки (x,y) в точки (x,y+-1), (x-+1,y), (x+-1,y+-1).
Борис
т.е. можно идти в любую сторону?
Борис
а там сказано, что маршрут должен буть кратчайший?
max
ага видимо так
Борис
если нет - задача не имеет смысла
max
краткость маршрута вроди б пофигу
Борис
ээ минуточку, а нужна максимальная или минимальная стоимость??? а то ты там в двух местах разное написал
max
"требуется пройти по кривой с максимальным суммарным изменением цветов. "
Борис
а это че? " при нажатии на которую находится путь минимальной стоимости из точки (x0,y0) в точку (x1,y1). "
Борис
а блин, я торможу
BSV
Если правильно понял GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]); GetGValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]); GetBValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
max
нее, это понятно, тк стиоимость вычисляется "(3*256-расстояние между цветами пикселов) * 2 для переходов первых двух видов (по сетке) и * 3 для точек последнего вида (по диагонали). "
Борис
уже понял
max
фак, не допираю, как этто делать
max
как заполнить массив ways и чего с ним потом делать
Борис
Я тут вспомнил, что задача нахождения пути минимальной стоимости решается алгоритмом расставления временных пометок Дейкстры. Ты че за алгоритм то в итоге использовать будешь?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2026 IPS, Inc.