Визуализация чисто геометрического вывода формулы определителя третьего порядка

в 12:19, , рубрики: 3d, desmos, determinant, matrix, вектор, линейная алгебра, матрицы, определитель

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

Геометрический вывод в 2D — вычисление (ориентированной) площади серого параллелограмма на картинке:

2D
2D

det(vec{a}; vec{b})=det((a_1; a_2); (b_1; b_2))=(a_1+b_1)(a_2+b_2) - a_1a_2-b_1b_2-2b_1a_2=\=a_1b_2-b_1a_2

Данную картинку многие уже знают, некоторые даже сами её рисовали и выводили формулу, когда изучали определители.

Переход в 3D

В трёхмерном пространстве картина выглядит куда неприятнее с вычислительной точки зрения. Если в 2D нужно было считать площадь 6 объектов и некоторые повторяются, то в 3D нужно считать объёмы аж 24 объектов, хотя некоторые повторяются, но менее монотонным и долгим процесс от этого не становится, поэтому вывод формулы в 3D оставим в качестве упражнения для читателя, а полностью на бумаге и без 3D движков вроде Desmos3D — это, наверняка, был сущий кошмар, требующий хорошего пространственного мышления, если вообще кто‑то делал так когда‑либо. Соответственно, в этой оболочке из фигур находится параллелепипед, построенный на трёх векторах (a; b; c), объёму которого по модулю равен определитель 3×3 матрицы с этими векторами в качестве столбцов или строк.

|det(vec{a}, vec{b}, vec{c}) |=V_{пар.}

3D

3D

Ссылки на Desmos и разметка:

2D, 3D

2D
O=left(0,0right)
Folder: Vectors a and b
A=left(6.47,3.09right)
B=left(2,5right)
operatorname{polygon}left(O,Aright)
operatorname{polygon}left(O,Bright)
% ↓det(a; b)
A.xB.y-A.yB.x
% Shapes:
operatorname{polygon}left(A,A+Bright)
operatorname{polygon}left(B,A+Bright)
operatorname{polygon}left(O,A,A+B,Bright)
operatorname{polygon}left(O,left(0,B.yright),Bright)
operatorname{polygon}left(A,A+B,A+left(B.x,0right)right)
operatorname{polygon}left(B,A+B,B+left(0,A.yright)right)
operatorname{polygon}left(O,A,left(A.x,0right)right)
operatorname{polygon}left(left(0,B.yright),B,B+left(0,A.yright),left(0,A.y+B.yright)right)
operatorname{polygon}left(left(A.x,0right),A,A+left(B.x,0right),left(A.x+B.x,0right)right)

Folder: BS [not related to the topic]
operatorname{polygon}left(A,A-Acdot0.05costheta_{0}+left(A.y,-A.xright)cdot0.05sintheta_{0},A-Acdot0.05costheta_{0}-left(A.y,-A.xright)cdot0.05sintheta_{0}right)
operatorname{polygon}left(B,B-Bcdot0.05costheta_{0}-left(B.y,-B.xright)cdot0.05sintheta_{0},B-Bcdot0.05costheta_{0}+left(B.y,-B.xright)cdot0.05sintheta_{0}right)
theta_{0}=frac{pi}{20}
3D
O=left(0,0,0right)
% ↑ Start of coordinate system
Folder: Points (actual vectors a, b, c)
A=left(a_{1},a_{2},a_{3}right)
B=left(b_{1},b_{2},b_{3}right)
C=left(c_{1},c_{2},c_{3}right)
Folder: Vector A
a_{1}=8
a_{2}=3.2
a_{3}=1.27
Folder: Vector B
b_{1}=2.1
b_{2}=8
b_{3}=1.67
Folder: Vector C
c_{1}=2.7
c_{2}=2.05
c_{3}=9.3
% 2D determinant on Oxy:
Folder: A and B projections onto Oxy plane
a_{0}=left(a_{1},a_{2},0right)
b_{0}=left(b_{1},b_{2},0right)
operatorname{vector}left(O,a_{0}right)
operatorname{vector}left(O,b_{0}right)
operatorname{vector}left(a_{0},a_{0}+b_{0}right)
operatorname{vector}left(b_{0},a_{0}+b_{0}right)
Folder: 1
operatorname{triangle}left(O,a_{0},left(a_{1},0,0right)right)
operatorname{triangle}left(b_{0},a_{0}+b_{0},b_{0}+left(0,a_{2},0right)right)
Folder: 2
operatorname{triangle}left(O,b_{0},left(0,b_{2},0right)right)
operatorname{triangle}left(a_{0},a_{0}+b_{0},a_{0}+left(b_{1},0,0right)right)
Folder: 3
operatorname{triangle}left(left(a_{1}+b_{1},0,0right),left(a_{1},0,0right),a_{0}+left(b_{1},0,0right)right)
operatorname{triangle}left(a_{0},a_{0}+left(b_{1},0,0right),left(a_{1},0,0right)right)
operatorname{triangle}left(b_{0},left(0,b_{2}+a_{2},0right),b_{0}+left(0,a_{2},0right)right)
operatorname{triangle}left(b_{0},left(0,b_{2}+a_{2},0right),left(0,b_{2},0right)right)
Folder: Parallelogram
operatorname{triangle}left(O,b_{0},b_{0}+a_{0}right)
operatorname{triangle}left(O,a_{0},a_{0}+b_{0}right)
% ===3D determinant in the space===
Folder: Main vectors a, b, c (drawings of their arrows in 3D)
a =operatorname{vector}left(O, Aright)
b=operatorname{vector}left(O, Bright)
c=operatorname{vector}left(O, Cright)
Folder: Other „vectors“ (actually same vectors but different arrows in space)
operatorname{vector}left(B,A+Bright)
operatorname{vector}left(A,A+Bright)
operatorname{vector}left(C,A+Cright)
operatorname{vector}left(C, B+Cright)
operatorname{vector}left(A, A+Cright)
operatorname{vector}left(B,B+Cright)
operatorname{vector}left(A+B, A+B+Cright)
operatorname{vector}left(C+A, A+B+Cright)
operatorname{vector}left(C+B, A+B+Cright)
Folder: Determinant (more precisely only a parallelepiped which volume equal to absolute value of det(a; b; c))
operatorname{triangle}left(O,C,Aright)
operatorname{triangle}left(A,C,A+Cright)
operatorname{triangle}left(O,B,Aright)
operatorname{triangle}left(B,A,A+Bright)
operatorname{triangle}left(A+C,A+B,Aright)
operatorname{triangle}left(A+B+C,A+C,A+Bright)
operatorname{triangle}left(A+B+C,B+C,A+Bright)
operatorname{triangle}left(A+B,B,B+Cright)
operatorname{triangle}left(O,C,Bright)
operatorname{triangle}left(B,B+C,Cright)
operatorname{triangle}left(C,A+C,A+B+Cright)
operatorname{triangle}left(C,A+B+C,B+Cright)
Folder: Planes
x=A.x+B.x+C.x
y=A.y+B.y+C.y
z=A.z+B.z+C.z
% ↓Prisms:
% Slider of parameter m for moving some objects to connect them by subtracting or adding some vector or combination of vectors scaled by m
m=0
Folder: 1.1
operatorname{triangle}left(O,A,left(A.x, A.y,0right)right)
operatorname{triangle}left(O,B,left(B.x, B.y,0right)right)
operatorname{triangle}left(O,A,Bright)
operatorname{triangle}left(A,B,A+Bright)
operatorname{triangle}left(left(A.x, A.y,0right),A+B, Aright)
operatorname{triangle}left(left(A.x, A.y,0right),A+B, left(left(A+Bright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(A+B,left(B.x, B.y,0right),left(left(A+Bright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(A+B,left(B.x, B.y,0right),Bright)
operatorname{triangle}left(O,left(A.x+B.x, A.y+B.y, 0right),left(A.x,A.y,0right)right)
operatorname{triangle}left(O,left(A.x+B.x, A.y+B.y, 0right),left(B.x,B.y,0right)right)
Folder: 1.2
operatorname{triangle}left(A+C-mC,A+C+left(0,0,B.zright)-mC,A+B+C-mCright)
operatorname{triangle}left(A+C-mC,A+C+left(0,0,B.zright)-mC,C-mCright)
operatorname{triangle}left(C-mC,C+left(0,0,A.z+B.zright)-mC,A+C+left(0,0,B.zright)-mCright)
operatorname{triangle}left(C-mC,C+left(0,0,A.z+B.zright)-mC,B+C-mCright)
operatorname{triangle}left(C+left(0,0,A.z+B.zright)-mC,B+C-mC,B+C+left(0,0,A.zright)-mCright)
operatorname{triangle}left(C-mC,A+C-mC,A+B+C-mCright)
operatorname{triangle}left(C-mC,A+B+C-mC,B+C-mCright)
operatorname{triangle}left(B+C+left(0,0,A.zright)-mC,A+B+C-mC,B+C-mCright)
operatorname{triangle}left(A+B+C-mC, C+left(0,0,A.z+B.zright)-mC,B+C+left(0,0,A.zright)-mCright)
operatorname{triangle}left(C+left(0,0,B.z+A.zright)-mC,A+C+left(0,0,B.zright)-mC,A+B+C-mCright)
Folder: 2.1
operatorname{triangle}left(O,C,left(0,C.y,C.zright)right)
operatorname{triangle}left(O,B,left(0,B.y,B.zright)right)
operatorname{triangle}left(O,B+C,Bright)
operatorname{triangle}left(O,B+C,Cright)
operatorname{triangle}left(left(0,C.y,C.zright),B+C,Cright)
operatorname{triangle}left(left(0,C.y,C.zright),B+C,left(0,left(B+Cright).y,left(B+Cright).zright)right)
operatorname{triangle}left(B+C,left(0,B.y,B.zright),Bright)
operatorname{triangle}left(left(0,left(B+Cright).y,left(B+Cright).zright),B+C,left(0,B.y,B.zright)right)
operatorname{triangle}left(left(0,left(B+Cright).y,left(B+Cright).zright),O,left(0,B.y,B.zright)right)
operatorname{triangle}left(left(0,left(B+Cright).y,left(B+Cright).zright),O,left(0,C.y,C.zright)right)
Folder: 2.2
operatorname{triangle}left(A-mA,A+left(B.x+C.x,0,0right)-mA,A+B-mAright)
operatorname{triangle}left(A+B+left(C.x,0,0right)-mA,A+left(B.x+C.x,0,0right)-mA,A+B-mAright)
operatorname{triangle}left(A+B+C-mA,A+B-mA,A+B+left(C.x,0,0right)-mAright)
operatorname{triangle}left(A-mA,A+left(B.x+C.x,0,0right)-mA,A+C+left(B.x,0,0right)-mAright)
operatorname{triangle}left(A+C-mA,A-mA,A+C+left(B.x,0,0right)-mAright)
operatorname{triangle}left(A+C-mA, A+C+left(B.x,0,0right)-mA, A+B+C-mAright)
operatorname{triangle}left(A+B+C-mA, A-mA, A+B-mAright)
operatorname{triangle}left(A-mA, A+B+C-mA, A+C-mAright)
operatorname{triangle}left(A+left(C.x+B.x,0,0right)-mA,A+B+C-mA,A+B+left(C.x, 0,0right)-mAright)
operatorname{triangle}left(A+left(C.x+B.x,0,0right)-mA,A+C+left(B.x,0,0right)-mA,A+B+C-mAright)
Folder: 3.1
operatorname{triangle}left(O,A,left(A.x,0,A.zright)right)
operatorname{triangle}left(O,C,left(C.x,0,C.zright)right)
operatorname{triangle}left(left(C.x,0,C.zright),C,A+Cright)
operatorname{triangle}left(left(C.x,0,C.zright),C+A,left(A.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(left(A.x+C.x,0,A.z+C.zright),A+C,Aright)
operatorname{triangle}left(A,left(A.x,0,A.zright),left(A.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(O,A+C,Cright)
operatorname{triangle}left(O,A+C,Aright)
operatorname{triangle}left(O,left(C.x,0,C.zright),left(A.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(O,left(A.x+C.x,0,A.z+C.zright),left(A.x,0,A.zright)right)
Folder: 3.2
operatorname{triangle}left(B-mB,B+C-mB,A+B+C-mBright)
operatorname{triangle}left(B-mB,A+B+C-mB,A+B-mBright)
operatorname{triangle}left(B-mB, B+C-mB,left(B.x, B.y+A.y+C.y,B.zright)-mBright)
operatorname{triangle}left(left(B.x, B.y+A.y+C.y,B.zright)-mB,B+C-mB,B+C+left(0,A.y,0right)-mBright)
operatorname{triangle}left(B+C+left(0,A.y,0right)-mB,A+B+C-mB,B+C-mBright)
operatorname{triangle}left(A+B-mB,A+B+left(0,C.y,0right)-mB,A+B+C-mBright)
operatorname{triangle}left(A+B-mB,A+B+left(0,C.y,0right)-mB,B-mBright)
operatorname{triangle}left(A+B+left(0,C.y,0right)-mB,B-mB,left(B.x, B.y+A.y+C.y,B.zright)-mBright)
operatorname{triangle}left(A+B+C-mB,left(B.x, B.y+A.y+C.y,B.zright)-mB,B+C+left(0,A.y,0right)-mBright)
operatorname{triangle}left(A+B+C-mB,left(B.x, B.y+A.y+C.y,B.zright)-mB,B+A+left(0,C.y,0right)-mBright)
% ↓Other parts:
Folder: 1.1
operatorname{triangle}left(C+left(0,0,A.z+B.zright),B+C,B+C+left(0,0,A.zright)right)
operatorname{triangle}left(C,C+left(0,0,A.z+B.zright),B+Cright)
operatorname{triangle}left(C,left(0,C.y,C.zright),left(0,C.y,C.z+A.z+B.zright)right)
operatorname{triangle}left(C,C+left(0,0,A.z+B.zright),left(0,C.y,C.z+A.z+B.zright)right)
operatorname{triangle}left(left(0,C.y,C.z+A.z+B.zright),C+left(0,0,A.z+B.zright),B+C+left(0,0,A.zright)right)
operatorname{triangle}left(left(0,C.y,C.z+A.z+B.zright),B+C+left(0,0,A.zright)-left(C.x+B.x,0,0right),B+C+left(0,0,A.zright)right)
operatorname{triangle}left(left(0,C.y,C.zright),B+C,left(0,left(B+Cright).y,left(B+Cright).zright)right)
operatorname{triangle}left(left(0,C.y,C.zright),B+C,left(0,left(B+Cright).y,left(B+Cright).zright)right)
operatorname{triangle}left(left(0,C.y,C.zright),B+C,Cright)
operatorname{triangle}left(left(0,C.y,C.zright),left(0,C.y,C.z+A.z+B.zright),left(0,B.y+C.y,B.z+C.zright)right)
operatorname{triangle}left(B+C+left(0,0,A.zright)-left(B.x+C.x,0,0right),left(0,C.y,C.z+A.z+B.zright),left(0,B.y+C.y,B.z+C.zright)right)
operatorname{triangle}left(B+C,B+C+left(0,0,A.zright),B+C+left(0,0,A.zright)-left(B.x+C.x,0,0right)right)
operatorname{triangle}left(B+C,left(0,B.y+C.y,B.z+C.zright),B+C+left(0,0,A.zright)-left(B.x+C.x,0,0right)right)
Folder: 1.2 MOVABLE
operatorname{triangle}left(A+B+left(C.x,0,0right)+v-mB,A+left(B.x+C.x,0,0right)+v+mB,A+B+v-mBright)
operatorname{triangle}left(A+v+mB,A+left(B.x+C.x,0,0right)+v+mB,A+B+v-mBright)
operatorname{triangle}left(left(A.x, A.y,0right)+v+mleft(0,0,A.zright)+mleft(C.x,0,0right),A+B+v+mleft(0,0,A.zright)+mleft(C.x+B.x,0,0right), A+v+mleft(0,0,A.z+B.zright)+mleft(C.x,0,0right)right)
operatorname{triangle}left(left(A.x, A.y,0right)+v+mleft(C.x,0,A.zright),A+B+v+mleft(C.x+B.x,0,A.zright),left(left(A+Bright).x,left(A+Bright).y,0right)+v+mleft(B.x+C.x,0,B.z+A.zright)right)
operatorname{triangle}left(A+B+left(C.x,0,0right)+v-mB+mleft(0,0,A.z+B.zright),A+B+v-mB+mleft(0,0,A.z+B.zright),left(left(A+B+Cright).x,left(A+Bright).y,0right)+v-mB+mleft(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(left(A+Bright).x,left(A+Bright).y,0right)+v-mB+mleft(0,0,A.z+B.zright),A+B+v-mB+mleft(0,0,A.z+B.zright),left(left(A+B+Cright).x,left(A+Bright).y,0right)+v-mB+mleft(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)+v+mB+mleft(0,0,A.zright),A+v+mB+mleft(0,0,A.zright),A+left(B.x+C.x,0,0right)+v+mB+mleft(0,0,A.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)+v+mB+mleft(0,0,A.zright),A+left(B.x+C.x,0,0right)+v+mB+mleft(0,0,A.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)+v+mB+mleft(0,0,A.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)+v+mleft(B.x,B.y,0right)+mleft(0,0,B.z+2A.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)+v+mleft(B.x,B.y,0right)+mleft(0,0,B.z+2A.zright),left(left(A+Bright).x,left(A+Bright).y,0right)+v-mleft(B.x,B.y,0right)+mleft(0,0,B.z+2A.zright)right)
operatorname{triangle}left(left(left(A+Bright).x,left(A+Bright).y,0right)+v+mleft(0,0,2A.z+B.zright)-mleft(B.x,B.y,0right),left(left(A+B+Cright).x,left(A+Bright).y,0right)+v+mleft(0,0,2A.z+B.zright)-mleft(B.x,B.y,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)+v+mleft(B.x,B.y,0right)+mleft(0,0,2A.z+B.zright)right)
operatorname{triangle}left(A+left(B.x+C.x,0,0right)+v-mleft(C.x+B.x,0,0right)+mleft(0,0,A.z+B.zright),left(left(A+B+Cright).x,left(A+Bright).y,0right)+v-mleft(C.x,0,0right)+mleft(0,0,A.z+B.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)+v-mleft(C.x+B.x,0,0right)+mleft(0,0,A.zright)+mB+mleft(0,0,A.zright)right)
operatorname{triangle}left(A+B+left(C.x,0,0right)+v-mleft(C.x,0,0right),left(left(A+B+Cright).x,left(A+Bright).y,0right)+v-mleft(C.x+B.x,B.y,0right)+mleft(0,0,2A.z+B.zright),A+left(B.x+C.x,0,0right)+v-mleft(C.x+B.x,0,0right)right)
v=-mA+mC
Folder: 1.2 STATIC
operatorname{triangle}left(A+B+left(C.x,0,0right),A+left(B.x+C.x,0,0right),A+Bright)
operatorname{triangle}left(A,A+left(B.x+C.x,0,0right),A+Bright)
operatorname{triangle}left(left(A.x, A.y,0right),A+B, Aright)
operatorname{triangle}left(left(A.x, A.y,0right),A+B, left(left(A+Bright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(A+B+left(C.x,0,0right),A+B,left(left(A+B+Cright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(left(left(A+Bright).x,left(A+Bright).y,0right),A+B,left(left(A+B+Cright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(left(A.x,A.y,0right),A,A+left(B.x+C.x,0,0right)right)
operatorname{triangle}left(left(A.x,A.y,0right),A+left(B.x+C.x,0,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright),left(left(A+Bright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(left(left(A+B+Cright).x,left(A+Bright).y,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright),left(left(A+Bright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(A+left(B.x+C.x,0,0right),left(left(A+B+Cright).x,left(A+Bright).y,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)right)
operatorname{triangle}left(A+left(B.x+C.x,0,0right),left(left(A+B+Cright).x,left(A+Bright).y,0right),A+B+left(C.x,0,0right)right)
Folder: 2.1
operatorname{triangle}left(O,A,left(A.x, A.y,0right)right)
operatorname{triangle}left(O,A,left(A.x,0,A.zright)right)
operatorname{triangle}left(O,left(A.x,0,A.zright),left(A.x, 0,0right)right)
operatorname{triangle}left(O,left(A.x, A.y,0right),left(A.x, 0,0right)right)
operatorname{triangle}left(left(A.x, 0,0right),left(A.x, A.y,0right),Aright)
operatorname{triangle}left(left(A.x, 0,0right),left(A.x,0,A.zright),Aright)
Folder: 2.2
operatorname{triangle}left(A+B+C,B+C,B+C+left(0,0,A.zright)right)
operatorname{triangle}left(A+B+C,B+C,B+C+left(0,A.y,0right)right)
operatorname{triangle}left(A+B+C,B+C+left(0,0,A.zright),B+C+left(0,A.y,A.zright)right)
operatorname{triangle}left(A+B+C,B+C+left(0,A.y,0right),B+C+left(0,A.y,A.zright)right)
operatorname{triangle}left(B+C+left(0,A.y,A.zright),B+C,B+C+left(0,A.y,0right)right)
operatorname{triangle}left(B+C+left(0,A.y,A.zright),B+C,B+C+left(0,0,A.zright)right)
Folder: 3.1
operatorname{triangle}left(left(A.x, 0,0right),left(A.x,0,A.zright),Aright)
operatorname{triangle}left(left(A.x, 0,0right),left(A.x, A.y,0right),Aright)
operatorname{triangle}left(A,A+left(B.x+C.x,0,0right),left(A.x,0,A.zright)right)
operatorname{triangle}left(left(A.x,0,A.zright),A+left(B.x+C.x,0,0right),left(A.x+B.x+C.x,0,A.zright)right)
operatorname{triangle}left(A-left(0,0,A.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright),left(A.x,0,A.zright)-left(0,0,A.zright)right)
operatorname{triangle}left(left(A.x,0,A.zright)-left(0,0,A.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright),left(A.x+B.x+C.x,0,A.zright)-left(0,0,A.zright)right)
operatorname{triangle}left(left(A.x, 0,0right)+left(B.x+C.x,0,0right),left(A.x, A.y,0right)+left(B.x+C.x,0,0right),A+left(B.x+C.x,0,0right)right)
operatorname{triangle}left(left(A.x, 0,0right)+left(B.x+C.x,0,0right),left(A.x,0,A.zright)+left(B.x+C.x,0,0right),A+left(B.x+C.x,0,0right)right)
operatorname{triangle}left(left(A.x,A.y,0right)-left(0,A.y,0right),A+left(B.x+C.x,0,0right)-left(0,A.y,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)-left(0,A.y,0right)right)
operatorname{triangle}left(left(A.x,A.y,0right)-left(0,A.y,0right),A-left(0,A.y,0right),A+left(B.x+C.x,0,0right)-left(0,A.y,0right)right)
operatorname{triangle}left(left(A.x,A.y,0right),A+left(B.x+C.x,0,0right),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right),A,A+left(B.x+C.x,0,0right)right)
Folder: 3.2
operatorname{triangle}left(left(A.x, 0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x, 0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x, A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(A-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x+B.x+C.x,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(A-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x,0,A.zright)-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x,0,A.zright)-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x+B.x+C.x,0,A.zright)-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x, 0,0right)+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x, A.y,0right)+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x, 0,0right)+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),left(A.x,0,A.zright)+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)-left(0,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-left(0,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)-left(0,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)-left(0,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A-left(0,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-left(0,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-left(0,0,A.zright)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
operatorname{triangle}left(left(A.x,A.y,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright),A+left(B.x+C.x,0,0right)-A+left(0,A.y+B.y+C.y,A.z+B.z+C.zright)right)
Folder: 4.1
operatorname{triangle}left(O,C,left(C.x,0,C.zright)right)
operatorname{triangle}left(O,C,left(0,C.y,C.zright)right)
operatorname{triangle}left(O,left(0,C.y,C.zright),left(0,0,C.zright)right)
operatorname{triangle}left(O,left(0,0,C.zright),left(C.x,0,C.zright)right)
operatorname{triangle}left(left(0,0,C.zright),left(C.x,0,C.zright),Cright)
operatorname{triangle}left(left(0,0,C.zright),C,left(0,C.y,C.zright)right)
Folder: 4.2
operatorname{triangle}left(A+B+C-mA,A+B-mA,A+B+left(C.x,0,0right)-mAright)
operatorname{triangle}left(A+B-mB,A+B+left(0,C.y,0right)-mB,A+B+C-mBright)
operatorname{triangle}left(A+B+C,A+B+left(0,C.y,0right),A+B+left(C.x,C.y,0right)right)
operatorname{triangle}left(A+B+C,A+B+left(C.x,0,0right),A+B+left(C.x,C.y,0right)right)
operatorname{triangle}left(A+B,A+B+left(C.x,C.y,0right),A+B+left(C.x,0,0right)right)
operatorname{triangle}left(A+B,A+B+left(C.x,C.y,0right),A+B+left(0,C.y,0right)right)
Folder: 5.1
operatorname{triangle}left(A+C,A+C+left(0,0,B.zright),A+B+Cright)
operatorname{triangle}left(A+C,A+C+left(B.x,0,0right),A+B+Cright)
operatorname{triangle}left(A+C+left(0,0,B.zright),A+B+C,A+C+left(B.x,0,B.zright)right)
operatorname{triangle}left(A+C+left(B.x,0,0right),A+C+left(B.x, 0,B.zright), A+B+Cright)
operatorname{triangle}left(A+C,A+C+left(0,0,B.zright), A+C+left(B.x,0,B.zright)right)
operatorname{triangle}left(A+C,A+C+left(B.x,0,B.zright),A+C+left(B.x,0,0right)right)
Folder: 5.2
operatorname{triangle}left(O,B,left(0,B.y,B.zright)right)
operatorname{triangle}left(O,B,left(B.x,B.y,0right)right)
operatorname{triangle}left(O,left(B.x,B.y,0right),left(0,B.y,0right)right)
operatorname{triangle}left(O,left(0,B.y,0right),left(0,B.y,B.zright)right)
operatorname{triangle}left(left(0,B.y,0right),left(0,B.y,B.zright),Bright)
operatorname{triangle}left(left(0,B.y,0right),left(B.x,B.y,0right),Bright)
Folder: 6.1
operatorname{triangle}left(C,left(C.x,0,C.zright), left(0,C.y,C.zright)right)
operatorname{triangle}left(left(0,0,C.zright),left(C.x,0,C.zright), left(0,C.y,C.zright)right)
operatorname{triangle}left(C+left(0,0,A.z+B.zright),left(C.x,0,C.zright)+left(0,0,A.z+B.zright), left(0,C.y,C.zright)+left(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(0,0,C.zright)+left(0,0,A.z+B.zright),left(C.x,0,C.zright)+left(0,0,A.z+B.zright), left(0,C.y,C.zright)+left(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(0,0,C.zright),left(0,C.y,C.zright),left(0,0,C.zright)+left(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(0,C.y,C.z+B.z+A.zright),left(0,C.y,C.zright),left(0,0,C.zright)+left(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(0,0,C.zright)+left(C.x,0,0right),left(0,C.y,C.zright)+left(C.x,0,0right),left(0,0,C.zright)+left(0,0,A.z+B.zright)+left(C.x,0,0right)right)
operatorname{triangle}left(left(0,C.y,C.z+B.z+A.zright)+left(C.x,0,0right),left(0,C.y,C.zright)+left(C.x,0,0right),left(0,0,C.zright)+left(0,0,A.z+B.zright)+left(C.x,0,0right)right)
operatorname{triangle}left(C,C+left(0,0,A.z+B.zright),left(0,C.y,C.z+A.z+B.zright)right)
operatorname{triangle}left(C,left(0,C.y,C.zright),left(0,C.y,C.z+A.z+B.zright)right)
operatorname{triangle}left(C-left(0,C.y,0right),C+left(0,0,A.z+B.zright)-left(0,C.y,0right),left(0,C.y,C.z+A.z+B.zright)-left(0,C.y,0right)right)
operatorname{triangle}left(C-left(0,C.y,0right),left(0,C.y,C.zright)-left(0,C.y,0right),left(0,C.y,C.z+A.z+B.zright)-left(0,C.y,0right)right)
Folder: 6.2
v_{1}=-C+left(A.x+B.x+C.x,A.y+B.y+C.y,0right)
operatorname{triangle}left(C+v_{1},left(C.x,0,C.zright)+v_{1}, left(0,C.y,C.zright)+v_{1}right)
operatorname{triangle}left(left(0,0,C.zright)+v_{1},left(C.x,0,C.zright)+v_{1}, left(0,C.y,C.zright)+v_{1}right)
operatorname{triangle}left(C+left(0,0,A.z+B.zright)+v_{1},left(C.x,0,C.zright)+left(0,0,A.z+B.zright)+v_{1}, left(0,C.y,C.zright)+left(0,0,A.z+B.zright)+v_{1}right)
operatorname{triangle}left(left(0,0,C.zright)+left(0,0,A.z+B.zright)+v_{1},left(C.x,0,C.zright)+left(0,0,A.z+B.zright)+v_{1}, left(0,C.y,C.zright)+left(0,0,A.z+B.zright)+v_{1}right)
operatorname{triangle}left(left(0,0,C.zright)+v_{1},left(0,C.y,C.zright)+v_{1},left(0,0,C.zright)+left(0,0,A.z+B.zright)+v_{1}right)
operatorname{triangle}left(left(0,C.y,C.z+B.z+A.zright)+v_{1},left(0,C.y,C.zright)+v_{1},left(0,0,C.zright)+left(0,0,A.z+B.zright)+v_{1}right)
operatorname{triangle}left(left(0,0,C.zright)+left(C.x,0,0right)+v_{1},left(0,C.y,C.zright)+left(C.x,0,0right)+v_{1},left(0,0,C.zright)+left(0,0,A.z+B.zright)+left(C.x,0,0right)+v_{1}right)
operatorname{triangle}left(left(0,C.y,C.z+B.z+A.zright)+left(C.x,0,0right)+v_{1},left(0,C.y,C.zright)+left(C.x,0,0right)+v_{1},left(0,0,C.zright)+left(0,0,A.z+B.zright)+left(C.x,0,0right)+v_{1}right)
operatorname{triangle}left(C+v_{1},C+left(0,0,A.z+B.zright)+v_{1},left(0,C.y,C.z+A.z+B.zright)+v_{1}right)
operatorname{triangle}left(C+v_{1},left(0,C.y,C.zright)+v_{1},left(0,C.y,C.z+A.z+B.zright)+v_{1}right)
operatorname{triangle}left(C-left(0,C.y,0right)+v_{1},C+left(0,0,A.z+B.zright)-left(0,C.y,0right)+v_{1},left(0,C.y,C.z+A.z+B.zright)-left(0,C.y,0right)+v_{1}right)
operatorname{triangle}left(C-left(0,C.y,0right)+v_{1},left(0,C.y,C.zright)-left(0,C.y,0right)+v_{1},left(0,C.y,C.z+A.z+B.zright)-left(0,C.y,0right)+v_{1}right)
Folder: 7.1
operatorname{triangle}left(A+C,A+C+left(0,0,B.zright),A+C+left(B.x,0,B.zright)right)
operatorname{triangle}left(A+C,A+C+left(B.x,0,B.zright),A+C+left(B.x,0,0right)right)
operatorname{triangle}left(A+C,left(A.x+C.x,0,A.z+C.zright),left(A.x+C.x,0,A.z+C.z+B.zright)right)
operatorname{triangle}left(A+C,A+C+left(0,0,B.zright),left(A.x+C.x,0,A.z+C.z+B.zright)right)
operatorname{triangle}left(A+C+left(B.x,0,0right),left(A.x+C.x,0,A.z+C.zright)+left(B.x,0,0right),left(A.x+C.x,0,A.z+C.z+B.zright)+left(B.x,0,0right)right)
operatorname{triangle}left(A+C+left(B.x,0,0right),A+C+left(0,0,B.zright)+left(B.x,0,0right),left(A.x+C.x,0,A.z+C.z+B.zright)+left(B.x,0,0right)right)
operatorname{triangle}left(A+C-left(0,A.y+C.y,0right),A+C+left(0,0,B.zright)-left(0,A.y+C.y,0right),A+C+left(B.x,0,B.zright)-left(0,A.y+C.y,0right)right)
operatorname{triangle}left(A+C-left(0,A.y+C.y,0right),A+C+left(B.x,0,B.zright)-left(0,A.y+C.y,0right),A+C+left(B.x,0,0right)-left(0,A.y+C.y,0right)right)
operatorname{triangle}left(A+C,A+C+left(B.x,0,0right),A+C+left(B.x,-C.y-A.y,0right)right)
operatorname{triangle}left(A+C,left(A.x+C.x,0,C.z+A.zright),A+C+left(B.x,-C.y-A.y,0right)right)
operatorname{triangle}left(A+C+left(0,0,B.zright),A+C+left(B.x,0,0right)+left(0,0,B.zright),A+C+left(B.x,-C.y-A.y,0right)+left(0,0,B.zright)right)
operatorname{triangle}left(A+C+left(0,0,B.zright),left(A.x+C.x,0,C.z+A.zright)+left(0,0,B.zright),A+C+left(B.x,-C.y-A.y,0right)+left(0,0,B.zright)right)
Folder: 7.2
v_{2}=-left(A+Cright)+left(0,B.y+C.y+A.y,0right)
operatorname{triangle}left(A+C+v_{2},A+C+left(0,0,B.zright)+v_{2},A+C+left(B.x,0,B.zright)+v_{2}right)
operatorname{triangle}left(A+C+v_{2},A+C+left(B.x,0,B.zright)+v_{2},A+C+left(B.x,0,0right)+v_{2}right)
operatorname{triangle}left(A+C+v_{2},left(A.x+C.x,0,A.z+C.zright)+v_{2},left(A.x+C.x,0,A.z+C.z+B.zright)+v_{2}right)
operatorname{triangle}left(A+C+v_{2},A+C+left(0,0,B.zright)+v_{2},left(A.x+C.x,0,A.z+C.z+B.zright)+v_{2}right)
operatorname{triangle}left(A+C+left(B.x,0,0right)+v_{2},left(A.x+C.x,0,A.z+C.zright)+left(B.x,0,0right)+v_{2},left(A.x+C.x,0,A.z+C.z+B.zright)+left(B.x,0,0right)+v_{2}right)
operatorname{triangle}left(A+C+left(B.x,0,0right)+v_{2},A+C+left(0,0,B.zright)+left(B.x,0,0right)+v_{2},left(A.x+C.x,0,A.z+C.z+B.zright)+left(B.x,0,0right)+v_{2}right)
operatorname{triangle}left(A+C-left(0,A.y+C.y,0right)+v_{2},A+C+left(0,0,B.zright)-left(0,A.y+C.y,0right)+v_{2},A+C+left(B.x,0,B.zright)-left(0,A.y+C.y,0right)+v_{2}right)
operatorname{triangle}left(A+C-left(0,A.y+C.y,0right)+v_{2},A+C+left(B.x,0,B.zright)-left(0,A.y+C.y,0right)+v_{2},A+C+left(B.x,0,0right)-left(0,A.y+C.y,0right)+v_{2}right)
operatorname{triangle}left(A+C+v_{2},A+C+left(B.x,0,0right)+v_{2},A+C+left(B.x,-C.y-A.y,0right)+v_{2}right)
operatorname{triangle}left(A+C+v_{2},left(A.x+C.x,0,C.z+A.zright)+v_{2},A+C+left(B.x,-C.y-A.y,0right)+v_{2}right)
operatorname{triangle}left(A+C+left(0,0,B.zright)+v_{2},A+C+left(B.x,0,0right)+left(0,0,B.zright)+v_{2},A+C+left(B.x,-C.y-A.y,0right)+left(0,0,B.zright)+v_{2}right)
operatorname{triangle}left(A+C+left(0,0,B.zright)+v_{2},left(A.x+C.x,0,C.z+A.zright)+left(0,0,B.zright)+v_{2},A+C+left(B.x,-C.y-A.y,0right)+left(0,0,B.zright)+v_{2}right)
Folder: 8.1
operatorname{triangle}left(C,C+left(0,0,A.z+B.zright),A+Cright)
operatorname{triangle}left(A+C,A+C+left(0,0,B.zright),C+left(0,0,A.z+B.zright)right)
operatorname{triangle}left(left(C.x,0,C.zright),left(C.x,0,C.z+B.z+A.zright),C+left(0,0,A.z+B.zright)right)
operatorname{triangle}left(C,C+left(0,0,A.z+B.zright),left(C.x,0,C.zright)right)
operatorname{triangle}left(A+C,A+C+left(0,0,B.zright),left(left(A+Cright).x,0,left(A+Cright).zright)right)
operatorname{triangle}left(left(left(A+Cright).x,0,left(A+Cright).z+B.zright),A+C+left(0,0,B.zright),left(left(A+Cright).x,0,left(A+Cright).zright)right)
operatorname{triangle}left(A+C-left(0,A.y+C.y,0right),left(C.x,0,C.zright),left(C.x,0,C.z+A.z+B.zright)right)
operatorname{triangle}left(A+C-left(0,A.y+C.y,0right),left(A.x+C.x,0,A.z+C.z+B.zright),left(C.x,0,C.z+A.z+B.zright)right)
operatorname{triangle}left(C,A+C,left(A.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(C,left(C.x,0,C.zright),left(A.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(C+left(0,0,A.z+B.zright),A+C+left(0,0,B.zright),left(A.x+C.x,0,A.z+C.z+B.zright)right)
operatorname{triangle}left(C+left(0,-C.y,A.z+B.zright),C+left(0,0,A.z+B.zright),left(A.x+C.x,0,A.z+C.z+B.zright)right)
Folder: 8.2
operatorname{triangle}left(A+B+left(0,C.y,0right),B,left(B.x, B.y+A.y+C.y,B.zright)right)
operatorname{triangle}left(A+B,A+B+left(0,C.y,0right),Bright)
operatorname{triangle}left(left(0,C.y,C.z+B.z+A.zright)+v_{1},left(0,C.y,C.zright)+v_{1},left(0,0,C.zright)+left(0,0,A.z+B.zright)+v_{1}right)
operatorname{triangle}left(left(0,0,C.zright)+v_{1},left(0,C.y,C.zright)+v_{1},left(0,0,C.zright)+left(0,0,A.z+B.zright)+v_{1}right)
operatorname{triangle}left(A+B,left(B.x, B.y,0right),Bright)
operatorname{triangle}left(A+B,left(B.x, B.y,0right),left(left(A+Bright).x,left(A+Bright).y,0right)right)
operatorname{triangle}left(A+C+left(B.x,0,0right)+v_{2},A+C+left(0,0,B.zright)+left(B.x,0,0right)+v_{2},left(A.x+C.x,0,A.z+C.z+B.zright)+left(B.x,0,0right)+v_{2}right)
operatorname{triangle}left(A+C+left(B.x,0,0right)+v_{2},left(A.x+C.x,0,A.z+C.zright)+left(B.x,0,0right)+v_{2},left(A.x+C.x,0,A.z+C.z+B.zright)+left(B.x,0,0right)+v_{2}right)
operatorname{triangle}left(left(B.x,B.y,0right),left(B.x,B.y+A.y+C.y,0right),left(A.x+B.x,A.y+B.y,0right)right)
operatorname{triangle}left(left(B.x+A.x,B.y+A.y+C.y,0right),left(B.x,B.y+A.y+C.y,0right),left(A.x+B.x,A.y+B.y,0right)right)
operatorname{triangle}left(left(B.x+A.x,B.y+A.y+C.y,0right),A+B+left(0,C.y,0right),B+left(0,C.y+A.y,0right)right)
operatorname{triangle}left(left(B.x,B.y+A.y+C.y,0right),A+B+left(0,C.y,0right)-left(0,0,A.z+B.zright),B+left(0,C.y+A.y,0right)right)
Folder: 9.1
operatorname{triangle}left(A,left(A.x,0,A.zright),left(A.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(left(A.x+C.x,0,A.z+C.zright),A+C,Aright)
operatorname{triangle}left(A+C,left(A.x+C.x,0,C.z+A.zright),A+C+left(B.x,-C.y-A.y,0right)right)
operatorname{triangle}left(A+C,A+C+left(B.x,0,0right),A+C+left(B.x,-C.y-A.y,0right)right)
operatorname{triangle}left(left(A.x,0,A.zright),A+left(B.x+C.x,0,0right),left(A.x+B.x+C.x,0,A.zright)right)
operatorname{triangle}left(A,A+left(B.x+C.x,0,0right),left(A.x,0,A.zright)right)
operatorname{triangle}left(A+C,A,A+C+left(B.x,0,0right)right)
operatorname{triangle}left(A,A+left(B.x+C.x,0,0right),A+C+left(B.x,0,0right)right)
operatorname{triangle}left(A+C+left(B.x,0,0right),A+left(B.x+C.x,0,0right),left(C.x+B.x+A.x,0,A.zright)right)
operatorname{triangle}left(left(A.x,0,A.zright),left(A.x+C.x,0,A.z+C.zright),left(A.x+B.x+C.x,0,A.z+C.zright)right)
operatorname{triangle}left(left(A.x,0,A.zright),left(A.x+C.x+B.x,0,A.z+C.zright),left(A.x+B.x+C.x,0,A.zright)right)
operatorname{triangle}left(left(A.x+C.x+B.x,0,A.z+C.zright),A+C+left(B.x,0,0right),left(C.x+B.x+A.x,0,A.zright)right)
Folder: 9.2
operatorname{triangle}left(B+C, left(0,B.y+C.y,B.z+C.zright),left(0,B.y+C.y+A.y,B.z+C.zright)right)
operatorname{triangle}left(B+C,left(0,B.y+C.y+A.y,B.z+C.zright),B+C+left(0,A.y,0right)right)
operatorname{triangle}left(B+C+left(0,A.y,0right),left(0,B.y+C.y+A.y,B.z+C.zright),B+left(0,C.y+A.y,0right)right)
operatorname{triangle}left(B+C+left(0,A.y,0right),B+C,B+left(0,A.y+C.y,0right)right)
operatorname{triangle}left(B+C,B,B+left(0,A.y+C.y,0right)right)
operatorname{triangle}left(left(0,left(B+Cright).y,left(B+Cright).zright),B+C,left(0,B.y,B.zright)right)
operatorname{triangle}left(B+C,left(0,B.y,B.zright),Bright)
operatorname{triangle}left(left(0,B.y+C.y,B.z+C.zright),left(0,B.y+C.y+A.y,B.z+C.zright),left(0,B.y,B.zright)right)
operatorname{triangle}left(left(0,B.y,B.zright),left(0,B.y+A.y+C.y,B.zright),left(0,B.y+A.y+C.y,B.z+C.zright)right)
operatorname{triangle}left(left(0,B.y+A.y+C.y,B.z+C.zright),B+left(0,C.y+A.y,0right),left(0,B.y+C.y+A.y,B.zright)right)
operatorname{triangle}left(B,B+left(0,C.y+A.y,0right),left(0,B.y+C.y+A.y,B.zright)right)
operatorname{triangle}left(B,left(0,B.y+C.y+A.y,B.zright),left(0,B.y,B.zright)right)

Автор: MainEditor0

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js