Задан выпуклый многоугольник и семейство параллельных переносов в плоскости; сформулируйте и докажите критерии, при которых существует ненулевой вектор сдвига, переводящий многоугольник в положение самопересечения (самопокрытия), примените к разрезанию и упаковке

17 Ноя в 07:10
3 +1
0
Ответы
1
Определения и обозначения. Пусть P⊂R2P\subset\mathbb R^2PR2 — выпуклый ограниченный многоугольник с непустой внутренностью. Для вектора сдвига v∈R2v\in\mathbb R^2vR2 обозначим сдвиг множества через P+v={x+v: x∈P}P+v=\{x+v:\;x\in P\}P+v={x+v:xP}. Введём разностное тело (Minkowski difference)
D:=P−P={x−y: x,y∈P}. D:=P-P=\{x-y:\;x,y\in P\}.
D:=PP={xy:x,yP}.

Критерии пересечения / «самопокрытия».
1) Для любого вектора vvv верно
P∩(P+v)≠∅ ⟺ v∈D. P\cap(P+v)\neq\varnothing\iff v\in D.
P(P+v)=vD.
Доказательство: если z∈P∩(P+v)z\in P\cap(P+v)zP(P+v), то z=xz=xz=x и z=y+vz=y+vz=y+v для некоторых x,y∈Px,y\in Px,yP, значит v=x−y∈Dv=x-y\in Dv=xyD. Обратно, если v=x−y∈Dv=x-y\in Dv=xyD, то y+v=x∈Py+v=x\in Py+v=xP, т.е. P∩(P+v)≠∅P\cap(P+v)\neq\varnothingP(P+v)=.
2) Пересечение с непустой внутренностью (настоящее «перекрытие»):
int⁡P∩int⁡(P+v)≠∅ ⟺ v∈int⁡D. \operatorname{int}P\cap\operatorname{int}(P+v)\neq\varnothing\iff v\in\operatorname{int}D.
intPint(P+v)=vintD.
Доказательство: множество DDD выпукло; если v∈int⁡Dv\in\operatorname{int}DvintD, то в некоторой окрестности vvv все сдвиги представимы как разности точек интерьера PPP, откуда существует точка общей внутренности. Обратно, если внутренности пересекаются, то существует пара внутренних точек x,y∈int⁡Px,y\in\operatorname{int}Px,yintP с v=x−yv=x-yv=xy, значит v∈int⁡Dv\in\operatorname{int}DvintD.
3) Касание границ (без внутреннего перекрытия):
(P∩(P+v)≠∅ и int⁡P∩int⁡(P+v)=∅) ⟺ v∈∂D. \bigl(P\cap(P+v)\neq\varnothing\ \text{и}\ \operatorname{int}P\cap\operatorname{int}(P+v)=\varnothing\bigr)\iff v\in\partial D.
(P(P+v)= и intPint(P+v)=)vD.

Следствие (существование ненулевого сдвига с перекрытием). Так как 0∈int⁡D0\in\operatorname{int}D0intD для любого выпуклого множества с непустой внутренностью, то в любой окрестности нуля есть ненулевые v∈int⁡Dv\in\operatorname{int}DvintD. Следовательно всегда существует ненулевой вектор сдвига, при котором PPP и P+vP+vP+v имеют непустое внутреннее пересечение (т. е. «самопокрытие» в смысле перекрытия).
Применение к разрезанию и упаковке.
- Критерий некроссинговой упаковки (транслевантной упаковки): пусть набор сдвигов T⊂R2T\subset\mathbb R^2TR2 даёт упаковку копий P+T={P+t: t∈T}P+T=\{P+t:\;t\in T\}P+T={P+t:tT} с непересекающимися внутренностями тогда и только тогда, когда для любых разных t1,t2∈Tt_1,t_2\in Tt1 ,t2 T t1−t2∉int⁡D. t_1-t_2\notin\operatorname{int}D.
t1 t2 /intD.
Иначе разность лежит в int⁡D\operatorname{int}DintD и соответствующие копии перекрываются.
- Тесселяция (упаковка с покрытием) решёткой. Пусть Λ\LambdaΛ — решётка. Необходимые и (при допустимых условиях по границе) достаточные условия, чтобы семейство {P+λ:λ∈Λ}\{P+\lambda:\lambda\in\Lambda\}{P+λ:λΛ} давало тесселяцию R2\mathbb R^2R2:
a) Λ∩int⁡D={0}\Lambda\cap\operatorname{int}D=\{0\}ΛintD={0} (чтобы внутренности копий не пересекались);
b) area⁡(P)=det⁡Λ\operatorname{area}(P)=\det\Lambdaarea(P)=detΛ (чтобы суммарная площадь копий равнялась площади плоскости в пределах фундаментального параллелограмма).
При выполнении (a) и (b) и при условии, что граница PPP имеет нулевую меру, упаковка автоматически покрывает плоскость.
- Разрезание (диссекция) и реконструкция. При разрезании PPP на части, которые затем переводят сдвигами viv_ivi , для получения безперекрывающей сборки необходимо выбирать сдвиги так, чтобы разности между сдвигами не попадали в int⁡D\operatorname{int}DintD. Для получения сознательного перекрытия (наложения частей) выбирают сдвиги из int⁡D\operatorname{int}DintD; для касания по краю — сдвиги из ∂D\partial DD. Для симметричных многоугольников критерии упрощаются: если PPP центрально-симметричен, то D=2PD=2PD=2P, и условия сводятся к простому масштабированию.
Замечания по практическому вычислению. Множество D=P−PD=P-PD=PP — выпуклый (центрально-симметричный) многоугольник, его границу легко получить как Minkowski сумму P+(−P)P+(-P)P+(P). Поэтому в конкретной задаче вычисление запрещённой области сдвигов и проверка условий сводятся к простому вычислению геометрии DDD.
Таким образом: проверка существования ненулевого сдвига, приводящего к самопересечению/перекрытию, сводится к проверке принадлежности этого сдвига разностному телу D=P−PD=P-PD=PP; критерии для упаковки и тесселяции формулируются через исключение разностей сдвигов из int⁡D\operatorname{int}DintD и через равенство площадей при тесселяции.
17 Ноя в 08:20
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир