Автоматическое упрощение геометрических объектов
Версия 11 усовершенствует операции со специальными геометрическими объектами.
Пересечем единичный диск и единичный прямоугольник.
In[1]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_39.png)
RegionIntersection[Disk[], Rectangle[]]
Out[1]=
![](assets.ru/automatic-region-simplification/O_24.png)
![](assets.ru/automatic-region-simplification/O_25.png)
Применим аффинное преобразование к специальному геометрическому объекту.
In[2]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_40.png)
TransformedRegion[Disk[{1, 2}, {1, 2}],
AffineTransform[{{{1, 2}, {3, 1}}, {1, 2}}]]
Out[2]=
![](assets.ru/automatic-region-simplification/O_26.png)
In[3]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_41.png)
TransformedRegion[Rectangle[],
ShearingTransform[\[Pi]/4, {1, 0}, {0, 1}]]
Out[3]=
![](assets.ru/automatic-region-simplification/O_27.png)
Возьмем произведение двух регионов и генерируем специальный геометрический объект более высокой размерности.
In[4]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_42.png)
RegionProduct[Interval[{a, b}], Disk[{x, y}, r]]
Out[4]=
![](assets.ru/automatic-region-simplification/O_28.png)
In[5]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_43.png)
RegionProduct[Parallelepiped[{1, 1, 1}, IdentityMatrix[3]],
Rectangle[]]
Out[5]=
![](assets.ru/automatic-region-simplification/O_29.png)
Рассчитаем разницу между специальными геометрическими объектами.
In[6]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_44.png)
RegionDifference[Disk[{0, 0}, 2], Rectangle[{2, 2}]]
Out[6]=
![](assets.ru/automatic-region-simplification/O_30.png)
In[7]:=
![Click for copyable input](assets.ru/automatic-region-simplification/In_45.png)
RegionDifference[Cuboid[], Ball[{0, 0, 0}, 2]]
Out[7]=
![](assets.ru/automatic-region-simplification/O_31.png)