|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Если я правильно понял, то вы при выделении области предложенным мной способом само выделение не видите. Об этом речь?
Тогда надо наверное просто рисовать одновременно с выделением полигон по тем-же кординатам. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#17
|
||||
|
||||
Да, мысль верная, то есть в процессе выделения, хотелось бы видеть, что выделяешь.(как карандашиком обводишь )
И потом уже сама выделенная область отображается таким образом, что под ней не видно самого изображения (объясняю как блондинка, извините), как будто сверху наложили заплатку. Можно ли сделать чтобы было видно изображение исходное? |
#18
|
||||
|
||||
Так добавьте всего одну строчку, в тот код что я вам дал ранее:
Код:
if StartSelectArea then if (SelectArea[High(SelectArea)].X <> X) or (SelectArea[High(SelectArea)].Y <> Y) then begin SetLength(SelectArea, Length(SelectArea)+1); SelectArea[High(SelectArea)] := Point(X,Y); Image1.Canvas.Polyline(SelectArea); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#19
|
||||
|
||||
Как здорово! Спасибо большое ! =))
Чем дольше я на форуме, тем больше люблю программистов |
#20
|
||||
|
||||
а можно как-то посчитать площадь выделенной области?
и если потом изначально выделенная область будет редактироваться (как в пейнте граф редактор типа карандашик, стирка), можно ли ее площадь считать? Чем дольше я на форуме, тем больше люблю программистов |
#21
|
||||
|
||||
Подсчитать площадь? Интересный вопрос. Поскольку все координаты выделенной области нам известны, то предположу что нужно сделать так:
Найти точку однозначно попадающую в нашу выделенную область. Это будет как-бы центр фигуры. Не принципиально, будет эта точка действительно по центру или очень приближенно. Далее двигаясь скажем по часовой стрелке, берем координаты пары близлежащих точек на выделенной области, иначе говоря это элементы массива точек с индексами N и N+1 и координату нашего центра. Т.е. имеем три координаты образующие треугольник. Подсчитать площадь треугольника мы уже можем, остается проделать эту операцию последовательно со всеми парами точек выделенной области, сложить полученные площади и получим площадь N-угольника. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 24.04.2010 в 14:37. |
#22
|
||||
|
||||
Хмм. Насчет центра или приближения к нему я очень сильно сомневаюсь т.к. выделенные фигуры будет довольно произвольной формы.(в основном тонкие продолговатые).
Это у меня теперь основная загвоздка: получается, что если выделенную фигуру отредактировать вручную, то площадь подсчитать не получится? Чем дольше я на форуме, тем больше люблю программистов |
#23
|
||||
|
||||
Подсчитать все можно, но вот как это сделать я затрудняюсь сказать. Получается, что вам надо подсчитать площадь исходя из граничного цвета. Видимо надо искать решение в инете.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#24
|
||||
|
||||
А как в массиве точек SelectArea выбрать крайние координаты? Для последующего вписания выделенной фигуры в прямоугольник.
Чем дольше я на форуме, тем больше люблю программистов Последний раз редактировалось Mystery, 25.04.2010 в 17:58. |
#25
|
||||
|
||||
Хочу попробовать использовать метод Монте карло
Чем дольше я на форуме, тем больше люблю программистов Последний раз редактировалось Mystery, 25.04.2010 в 18:00. |