![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |