Геометрические расчеты — пакет Geometry
Геометрические расчеты — пакет Geometry
В этом разделе описан пакет Geometry, содержащий ряд функций, полезных при выполнении геометрических расчетов. В основном это функции, относящиеся к построению регулярных полигонов на плоскости и полиэдров в пространстве. Кроме того, в пакете есть функции, задающие вращение фигур на плоскости и в пространстве.
Характеристики регулярных полигонов и полиэдров — Polytopes
Подпакет Polytopes содержит ряд функций для регулярных полигонов (многоугольников):
- NumberOfVertices [р] — число вершин углов полигона;
- NumberOfEdges [p] — число сторон полигона;
- NumberOf Faces [p] — число граней полигона;
- Vertices [р] — список координат вершин углов полигона;
- Area [р] — площадь полигона при длине каждой стороны, равной 1;
- InscribeciRadius [р]— радиус вписанной в полигон окружности;
- CircumscribedRadius [р] — радиус описывающей полигон окружности.
В этих функциях наименование полигона р может быть следующим (в скобках дано число сторон):
Digon (2)
Triangle (3)
Square (4)
Pentagon (5)
Hexagon (6)
Heptagon (7)
Octagon (8)
Nonagon (9)
Decagon (10,)
Undecagon (11)
Dodecagon (12)
На0 показаны примеры применения некоторых из этих функций и построение крупными точками вершин полигона — Пентагона (пятиугольника).
Для объемных фигур — полиэдров — имеются следующие функции:
- NumberOfVertices [р] — число вершин углов полиэдра;
- NumberOfEdges [р] — число сторон полиэдра;
- NumberOf Faces [р] — число граней полиэдра;
- Vertices [p] — список координат вершин углов полиэдра;
- Area [p] — площадь полиэдра при длине каждой стороны, равной 1;
- InscribedRadius [р] — радиус вписанной в полиэдр окружности;
- CircumscribedRadius [р] — радиус окружности, описывающей полиэдр;
- Volume [p] — объем полиэдра;
- Dual[p] — дуальный полиэдр;
- Schlafli[p] — символ полиэдра.
Здесь наименование полиэдра может быть следующим:
Tetrahedron (4)
Cube (6)
Octahedron (8)
Didecahedron (12)
Icosahedron (20)
Примеры применения функций полиэдров представлены ниже:
Volume[Octahedron]
(Корень из 2) /3
Vertices [Octahedron]
{{0, 0, 1.41421}, {1.41421, 0, 0}, {0, 1.41421, 0},
{0, 0, -1.41421}, {-1.41421, 0, 0}, {0, -1.41421, 0}}
Dual [Octahedron]
Cube
InscribedRadius [Octahedron]
1/(Корень из 6)
GircumscribedRadius [Octahedron]
1/(Корень из 2)
Вращение фигур на плоскости и в пространстве — Rotations
Для задания поворота плоских фигур на заданный угол в подпакете Rotations заданы следующие функции:
- RotationMatrix2D[theta] — дает матрицу для поворота на угол theta в двух измерениях;
- Rotate2D [vec, theta] — поворачивает вектор vec по часовой стрелке на угол theta;
- Rotate2D[vec,theta,{x,y}] — поворачивает вектор vec по часовой стрелке на угол theta относительно точки с координатами {х, у}.
Рисунок иллюстрирует работу с этими функциями.
Аналогичные функции существуют и для поворота трехмерных фигур:
- RotationMatrix3D [psi, theta,phi] — дает матрицу поворота на заданные углы в трехмерном пространстве;
- Rotate3D [vec, psi, theta, phi] — поворачивает вектор vec на заданные углы в трехмерном пространстве;
- Rotate3D [vec, psi, theta, phi,{x,y,z}]— поворачивает вектор vec на заданные углы в трехмерном пространстве относительно точки с координатами {х,у, z}.
Приведем пример вычисления матрицы трехмерного поворота:
RotationMatrix3D[Pi, Pi/2, Pi/6]