[CDR 2017-2021] какая самая быстрая функция поиска чего-либо по координате точки?

  • Автор темы Автор темы DukereD
  • Дата начала Дата начала

DukereD

макрософил
Топикстартер
Сообщения
511
Реакции
132
Вопрос в тему поиска.
какая самая быстрая функция поиска чего-либо по координате точки?
ActivePage.FindShapeAtPoint
или тот же ActiveLayer.FindShapes лучше?
или shape.IsOnShape можно использовать?
 
Последнее редактирование:
необходимо узнать есть ли в этой координате что-то т.е. линия или точка или внутренность объекта. а еще неплохо бы узнать если это дырка объекта.
 
ну а чо.. по координате пустота, но это пустота внутри объекта. об этом конечно тоже хотелось бы знать.
тут получается тогда нужны два способа..
один самый быстрый т.е внутри объекта или нет. и второй самый подробный если внутри, то где именно, на границе, на точке или в дырке )
 
Формализовать понятие "дырка обьекта" с математической точки зрения весьма нетривиально.
По поводу остального - кореловские алгоритмы обнаружения обьектов в данной точке ужасно глючны. В итоге сам делал так - растрировал изображение с заданной точностью и проверял попиксельно. Тем более, корел внутри себя, как выяснилось, тоже так делает, только менее предсказуемо.
 
  • Спасибо
Реакции: NatalieRedFox_333
Формализовать понятие "дырка обьекта" с математической точки зрения весьма нетривиально.
По поводу остального - кореловские алгоритмы обнаружения обьектов в данной точке ужасно глючны. В итоге сам делал так - растрировал изображение с заданной точностью и проверял попиксельно. Тем более, корел внутри себя, как выяснилось, тоже так делает, только менее предсказуемо.
растрировать вектор для проверки ? ого.. средством корела или своими алгоритмами? это же капец как затратно должно быть.

а по поводу "дырки" то тут проще. считаю считать дыркой контур внутри контура т.е. считаем сколько "вложенностей" у курвы и если количество вложенности четное - то это дырка.

в общем я так понял надо делать таймер и самому проверять кто быстрее работает )
 
растрировать вектор для проверки ? ого.. средством корела или своими алгоритмами? это же капец как затратно должно быть.

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

Я не просто так сказал про растрирование - реально встроенные алгоритмы негодные совсем. Когда я столкнулся с реализацией подобного контроля, то на реальных задачах баги сыпались как из рога изобилия, пока не плюнул и сделал свою реализацию, такие дела.
 
Как бы не так. Субконтура могут пересекаться, контура могут самопересекаться, то есть внутри одного субконтура могут быть как дырки так и не дырки, вдобавок, зависит от направления обхода и правила заливки, глубина кроличьей норы весьма велика.

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

а что на счет просто самого быстрого поиска вообще. каким лучше определять находится ли там что-либо.
может просто selectrectangle или как там ее?
 
так.. с определением куда именно попал дела обстоят плохо .. как и с подсчетом площади собственно ))))

а что на счет просто самого быстрого поиска вообще. каким лучше определять находится ли там что-либо.
может просто selectrectangle или как там ее?
Самый быстрый и надежный способ (по сути, и единственно верный) - выводить из корела в натив.
 
Это уж как реализуете. Самому с нуля реализовывать, конечно, болт - это охрененный матан, но, по счастью, есть готовые библиотеки векторной графики.
 
Это уж как реализуете. Самому с нуля реализовывать, конечно, болт - это охрененный матан, но, по счастью, есть готовые библиотеки векторной графики.
матан не то слово. я только нахождение пересечения двух безье с трудом осилил понять математику ))))
 
так а все же по теме.
какая самая быстрая?
 
Вопрос лишен смысла. Если вся система глючная зачем искать среди глючных функций самую быструю? Для меня компромис был именно в растрировании.
 
Вопрос лишен смысла. Если вся система глючная зачем искать среди глючных функций самую быструю? Для меня компромис был именно в растрировании.
сказать, что глючная и забить конечно проще всего. но есть же много встроенных функций какая-то же все же работает лучше.
так можно и на корел сказать, что он глючный и что теперь с нуля свой корел писать чтоли?
 
Что прделать, вся наша жизнь построена из компромиссов. Растрирование работает более-менее устойчиво, но относительное положение точек и контуров сделано откровенно на отделись.
Так же, кстати, как и вычисление площади.