Описание, математическая основа и практическое использование интерактивного калькулятора, который вычисляет координаты середины отрезка в 2D или трёхмерном пространстве, показывает длину отрезка, параметрическое представление и даёт подсказки по визуализации. Все формулы приведены далее — их можно использовать в коде или при проверке результатов.
Что делает программа
- Принимает координаты двух точек: A(Ax,Ay,Az) и B(Bx,By,Bz).
- Вычисляет координаты середины M, длину отрезка |AB| и отображает их.
- Показывает отрезок в 3D: тонкий стержень, зелёные сферы — концы, тёмно-красная сфера — середина.
- Поддерживает интерактивное изменение координат и подгонку вида камеры.
- Можно искать середину отрезка на 2D плоскости, если установить одинаковые Z-координаты.
Формулы и определения
1. Координаты середины отрезка
Если заданы координаты точек A и B:
$$A = (A_x, A_y, A_z),$$
$$B = (B_x, B_y, B_z),$$
то координаты середины \(M\) вычисляются как усреднение по каждой оси:
$$M = (M_x, M_y, M_z) =$$
$$=\left(\frac{A_x + B_x}{2},\; \frac{A_y + B_y}{2},\; \frac{A_z + B_z}{2}\right)$$
2. Длина отрезка, евклидово расстояние
Разность координат по осям:
$$\Delta x = B_x — A_x,$$
$$\Delta y = B_y — A_y,$$
$$\Delta z = B_z — A_z.$$
Длина отрезка \( |AB| \):
$$|AB| = \sqrt{(\Delta x)^2 + (\Delta y)^2 + (\Delta z)^2}$$
3. Векторное и параметрическое представление
Вектор от A к B и единичный вектор направления:
$$\vec{v} = \overrightarrow{AB} =$$
$$= (B_x-A_x,\; B_y-A_y,\; B_z-A_z),$$
$$\hat{u} = \frac{\vec v}{\|\vec v\|}$$
Параметрическое уравнение отрезка (точки на отрезке при параметре \(t\in[0,1]\)):
$$P(t) = A + t(B-A) =$$
$$= (A_x + t\Delta x,\; A_y + t\Delta y,\; A_z + t\Delta z)$$
Середина соответствует \(t = 0.5\).
4. Проекция произвольной точки на отрезок
Пусть есть точка \(Q\). Проекция её на бесконечную прямую AB задаётся:
$$t^* = \frac{(Q-A)\cdot (B-A)}{(B-A)\cdot(B-A)}$$
Если нужна проекция на сам отрезок, берём усечённый параметр \(t = \mathrm{clamp}(t^*,0,1)\) и получаем точку \(P(t)\).
Таблица для справки
| Операция | Формула | Примечание |
|---|---|---|
| Координаты середины | \(M=\big(\frac{A_x+B_x}{2},\frac{A_y+B_y}{2},\frac{A_z+B_z}{2}\big)\) | Прямое среднее по осям |
| Длина отрезка | \(\sqrt{(\Delta x)^2+(\Delta y)^2+(\Delta z)^2}\) | Евклидово расстояние |
| Параметрическое уравнение | \(P(t)=A+t(B-A),\;t\in[0,1]\) | Удобно для анимаций и интерполяции |
| Единичный вектор направления | \(\hat u=\frac{B-A}{\|B-A\|}\) | Нужен для нормалей и проекций |
Пошаговые примеры
Пример 1 — простой, целые числа
Даны точки A = (0,0,0), B = (2,4,6).
Координаты середины:
\[
M = \Big(\frac{0+2}{2},\;\frac{0+4}{2},\;\frac{0+6}{2}\Big) =
\]
\[
(1,\;2,\;3)
\]
Длина отрезка:
\[
\Delta x = 2,\;\Delta y = 4,\;\Delta z = 6;
\]
\[
|AB| = \sqrt{2^2 + 4^2 + 6^2} = 7.483
\]
Параметрическое выражение:
\[
P(t) = (0+2t,\;0+4t,\;0+6t)
\]
\[
P(0.5) = (1,2,3)
\]
Пример 2 — дробные и отрицательные координаты
Даны точки A = (1.5, -2.0, 0.75), B = (4.1, 3.2, -1.25).
Сначала находим суммы по осям:
- \(A_x + B_x = 1.5 + 4.1 = 5.6\)
- \(A_y + B_y = -2.0 + 3.2 = 1.2\)
- \(A_z + B_z = 0.75 + (-1.25) = -0.50\)
Делим на 2:
\[
M = (5.6/2,\;1.2/2,\;-0.5/2) =
\]
\[
= (2.8,\;0.6,\;-0.25).
\]
Длина отрезка:
\[
\Delta x = 4.1-1.5=2.6,
\]
\[
\Delta y=3.2-(-2)=5.2,
\]
\[
\Delta z=-1.25-0.75=-2.0.
\]
Квадраты: \(2.6^2=6.76,\;5.2^2=27.04,\;(-2)^2=4.00\)
Сумма: \(6.76+27.04+4.00=37.80\)
\[
|AB|=\sqrt{37.80}\approx 6.148
\]
При необходимости брать больше знаков — используйте стандартные функции sqrt в JS/Python/Excel.
Параметрическое:
\[
P(t) = (1.5 + 2.6t,\; -2.0 + 5.2t,
\]
\[
\; 0.75 — 2.0t).
\]
Для \(t=0.5\) восстанавливается рассчитанная середина.
Примечания по использованию калькулятора
- Единицы: Все координаты должны быть в одних единицах (мм, см, м — что вы используете). Результат длины будет в тех же единицах.
- Точность: при вычислениях с плавающей точкой в браузере значения округляются; для вывода обычно достаточно 3–6 знаков после запятой.
- Параметрические анимации: для анимации точки вдоль отрезка используйте параметр \(t\in[0,1]\).
- Проекции и ближайшая точка: для проекции внешней точки на отрезок используйте скалярное произведение и усечение параметра \(t\) отрезком.
- Визуальные подсказки: в 3D-сцене полезно показывать оси разными цветами: Ось X — красная (X →). Ось Y — зелёная (Y ↑). Ось Z — синяя (Z → из экрана)

Примеры использования в коде
// Вход: Ax,Ay,Az,Bx,By,Bz
Mx = (Ax + Bx) / 2;
My = (Ay + By) / 2;
Mz = (Az + Bz) / 2;dx = Bx — Ax; dy = By — Ay; dz = Bz — Az;
length = Math.sqrt(dx*dx + dy*dy + dz*dz);// Параметрическая точка для заданного t
Px = Ax + t * dx;
Py = Ay + t * dy;
Pz = Az + t * dz;
Итого, предлагаемый калькулятор середины отрезка — простое, но полезное средство при решении геометрических и инженерных задач: от визуализации и анимации до проверки координат и вычисления расстояний. Более расширенный функционал есть в инструменте для матричных преобразований. Встроенные формулы легко переносимы в код (JS/Python/Excel), а параметрическое представление удобно для анимаций и интерполяций.







