geometry - 给定其他三个,如何计算四面体的第四个顶点?
问题描述
我想计算正四面体的第四个顶点。我有坐标
{0, 0, Sqrt[2/3] - 1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), -(1/2), -(1/(2 Sqrt[6]))} 和 {-(1/(2 Sqrt[3])), 1/2, -(1/(2 Sqrt[6]))}
有人可以帮忙吗?
解决方案
找到脸的中心
cx = (x1 + x2 + x3)/3 and similar for y,z
获取两个边向量
e2x = x2 - x1
e2y = y2 - y1
e2z = z2 - z1
e3x = x3 - x1
e3y = y3 - y1
e3z = z3 - z1
计算边距
elen = sqrt(e2x*e2x+e2y*e2y+e2z*e2z)
计算向量积以获得法线到这张脸
nx = e2y*e3z - e2z*e3y
ny = e2z*e3x - e2x*e3z
nz = e2x*e3y - e2y*e3x
使单位正常
nlen = sqrt(nx*nx+ny*ny+nz*nz)
nx = nx / nlen
...
制作所需长度的法线(四面体高度)
lnx = nx * sqrt(2/3) * elen
...
将此法线添加到面部中心
x4 = cx +/- lnx
y4 = cy +/- lny
z4 = cz +/- lnz
+/-
符号对应于第四个顶点的两个可能位置
推荐阅读
- python - 如何正则表达式多个数据块
- sql - 如何从存储过程中检索列信息
- javascript - 在 JavaScript 中的链表中实现排序(冒泡排序或其他)
- python - 对此 lambda 函数的一些解释
- google-cloud-platform - 带有 kaniko 缓存的 Google Cloud Build 失败
- reactjs - React.js - 使用上下文 API 在组件之间传递函数 - 不起作用
- java - Spring Boot Webclient - 合并
- python - 使用 python 中的 simplekml 单击 Google Earth 上的图标,显示坐标和时间戳等信息
- postgresql - Postgresql 并使用基于同一表中现有记录的数据填充表
- javascript - 根据用户在 js 中的语言偏好重定向用户?