БлогNot. MathCAD: строим параллелепипед и произвольную ломаную в 3D

MathCAD: строим параллелепипед и произвольную ломаную в 3D

Вообще-то трёхмерный кубик в MathCAD можно изобразить "секретной функцией" Polyhedron("#11") (подробнее в этой моей статье). Но как быть, если нужен не просто куб, а параллелепипед, или, например, оси X, Y, Z хочется провести не там, где их проводит MathCAD - в углу 3D-области, а на их законном месте в начале координат?

Стандартных средств как-то не приходит в голову, но если позабавляться с маткадовским векторным контекстом, то сделать можно почти всё. Такие, как говорит В.Ф. Очков, деривации, бывают и занимательны, и полезны.

В этой заметке уже есть код для построения точки или отрезка на трёхмерном графике. Раз так, из отрезков можно составить любой каркас, в том числе, и параллелепипеда. Для простоты сделаем его стороны параллельными осям координат, а сам параллелепипед зададим двумя диагонально противоположными вершинами P и Q.

Чтобы MathCAD провёл видимые оси через начало координат, определим вспомогательные функции Ox, Oy, Oz (на графике - синие линии). Размер осей зависит от значения переменной a, показывающей границы области, которую нужно отобразить, одинаковые по всем трём измерениям. Вот весь расчёт:

Параллелепипед и правильные оси координат в Mathcad
Параллелепипед и правильные оси координат в Mathcad

Как видно, функции Piped метод Point не нужен, достаточно передать ей координаты двух вектор-столбцов по 3 элемента каждый, показывающих координаты противоположных вершин параллелепипеда.

Что касается ломаной, можно сделать ломаную из отрезков, а можно и просто для построения произвольной ломаной из N вершин записать в 3 вектор-строки (размерностью по N элементов) последовательности x, y и z-координат вершин, а затем переписать их в вектор-столбец. Покажем оба способа на примере, причём, ломаную в обоих случаях замкнём, сделав координаты последней точки совпадающими с координатами первой.

Mathcad: построение ломаной в трехмерном пространстве
Mathcad: построение ломаной в трехмерном пространстве

Второй способ явно предпочтительнее тем, что не требует дублирования данных, обращений к дополнительной функции Point, и, кроме того, строит один объект, а не N разных объектов. Значит, всю ломаную легко перекрасить или поменять ей толщину.

В заключение построим правильный тетраэдр с вершиной A в начале координат, а вершиной B в точке (1,0,0). При этом точка C, также лежащая в плоскости XY, будет иметь координаты (1/2, корень(3)/2, 0), а "верхняя" вершина S - координаты (1/2, корень(3)/6, корень(6)/3).

Mathcad: как построить правильный тетраэдр с заданными координатами вершин
Mathcad: как построить правильный тетраэдр с заданными координатами вершин

Координаты первой точки не совпадают с координатами последней, но наша фигура замкнута. Просто одно из рёбер проходится дважды, а именно, мы идём по рёбрам "маршрутом" AB - BC - CA - AS - SB - BC - CS. Обойти все рёбра тетраэдра, пройдя по каждому ребру только один раз, невозможно.

 Скачать расчёты из этой статьи в архиве .zip с файлом .xmcd MathCAD 15 (87 Кб)

11.11.2015, 23:25 [12200 просмотров]


теги: графика mathcad

К этой статье пока нет комментариев, Ваш будет первым