Покрытие объекта примитивами (прямоугольники, эллипсы - без поворотов)

Статус
Закрыто для дальнейших ответов.

quux

Участник
Топикстартер
Сообщения
33
Реакции
0
Всем добрый день!

Исходные данные: изображения предметов (фигуры окружающего мира (животные, транспорт и т.п.)

Задача: на новом слое покрыть каждое изображение (по крайним точкам контура) прямоугольниками либо эллипсами.

X76GXlly.png


Необходимо знать, возможно ли такое реализовать с помощью скрипта или нет.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Исходные данные: ...
Задача:...
Ну так действуйте! '))'

У каждого объекта есть свойства controlBounds или, как вам больше нравится, geometricBounds
Берете их и рисуете прямоугольник по этим координатам.
 

quux

Участник
Топикстартер
Сообщения
33
Реакции
0
Понятно, "покурю" эти свойства, но есть одна особенность. Не каждый объект целесообразно покрывать одним прямоугольником или одним эллипсом. Необходимо чтобы общий контур примитивов был как можно ближе к контуру объекта.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Это как? Каждый объект можно покрыть прямоугольником, согласно условию в стартовом топике, однозначным способом. "Как можно ближе" - условие оптимизационное. Налицо противоречие - или условие неправильное или неправильно сформулирована исходная постановка...
 

quux

Участник
Топикстартер
Сообщения
33
Реакции
0
На приведенном примере:

eSdCHt7U.png


Если покрыть землянику одним прямоугольником то будет две пустые области в верхнем правом и в нижнем левом углу. А если двумя прямоугольниками, как на примере, то покрытие будет оптимальным.

Еще один пример:

cikSYVU6.png
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
А если двумя прямоугольниками, как на примере, то покрытие будет оптимальным.
Теоретически, оптимальным будет покрытие, когда все вложенные подобъекты будут описаны прямоугольниками. Разумеется, при этом выкинуть все прямоугольники, целиком лежащие внутри области.

Еще один пример:
Этот пример вообще под условие стартового топика не подходит. Курите квадратуру криволинейной фигуры.
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ну, дак вывести формулу данной аппроксимации и кодить ;)
Любопытно, а ради чего эти мучения?
 

quux

Участник
Топикстартер
Сообщения
33
Реакции
0
Теоретически, оптимальным будет покрытие, когда все вложенные подобъекты будут описаны прямоугольниками.
Согласен, так будет оптимально с точки зрения условия "как можно ближе к границе объекта", но необходимо учитывать толщину пальца при касании экрана :) Поэтому как вы и говорили "Как можно ближе" - условие кастомизационное.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Тогда проще и правильнее сделать общий контур и проверять на нахождение точки касания внутри него
 
Статус
Закрыто для дальнейших ответов.