MathCAD: строим параллелепипед и произвольную ломаную в 3D
Вообще-то трёхмерный кубик в MathCAD можно изобразить "секретной функцией" Polyhedron("#11")
(подробнее в этой моей статье). Но как быть, если нужен не просто куб, а параллелепипед, или, например, оси X
, Y
, Z
хочется провести не там, где их проводит MathCAD - в углу 3D-области, а на их законном месте в начале координат?
Стандартных средств как-то не приходит в голову, но если позабавляться с маткадовским векторным контекстом, то сделать можно почти всё. Такие, как говорит В.Ф. Очков, деривации, бывают и занимательны, и полезны.
В этой заметке уже есть код для построения точки или отрезка на трёхмерном графике. Раз так, из отрезков можно составить любой каркас, в том числе, и параллелепипеда. Для простоты сделаем его стороны параллельными осям координат, а сам параллелепипед зададим двумя диагонально противоположными вершинами P
и Q
.
Чтобы MathCAD провёл видимые оси через начало координат, определим вспомогательные функции Ox
, Oy
, Oz
(на графике - синие линии). Размер осей зависит от значения переменной a
, показывающей границы области, которую нужно отобразить, одинаковые по всем трём измерениям. Вот весь расчёт:
Параллелепипед и правильные оси координат в Mathcad
Как видно, функции Piped
метод Point
не нужен, достаточно передать ей координаты двух вектор-столбцов по 3 элемента каждый, показывающих координаты противоположных вершин параллелепипеда.
Что касается ломаной, можно сделать ломаную из отрезков, а можно и просто для построения произвольной ломаной из N вершин записать в 3 вектор-строки (размерностью по N элементов) последовательности x, y и z-координат вершин, а затем переписать их в вектор-столбец. Покажем оба способа на примере, причём, ломаную в обоих случаях замкнём, сделав координаты последней точки совпадающими с координатами первой.
Mathcad: построение ломаной в трехмерном пространстве
Второй способ явно предпочтительнее тем, что не требует дублирования данных, обращений к дополнительной функции Point
, и, кроме того, строит один объект, а не N разных объектов. Значит, всю ломаную легко перекрасить или поменять ей толщину.
В заключение построим правильный тетраэдр с вершиной A в начале координат, а вершиной B в точке (1,0,0)
. При этом точка C, также лежащая в плоскости XY, будет иметь координаты
(1/2, корень(3)/2, 0)
, а "верхняя" вершина S - координаты (1/2, корень(3)/6, корень(6)/3)
.
Mathcad: как построить правильный тетраэдр с заданными координатами вершин
Координаты первой точки не совпадают с координатами последней, но наша фигура замкнута. Просто одно из рёбер проходится дважды, а именно, мы идём по рёбрам "маршрутом" AB - BC - CA - AS - SB - BC - CS. Обойти все рёбра тетраэдра, пройдя по каждому ребру только один раз, невозможно.
Скачать расчёты из этой статьи в архиве .zip с файлом .xmcd MathCAD 15 (87 Кб)
11.11.2015, 23:25 [12200 просмотров]