59 votos

¿Cómo calcular el área de un triángulo 3D?

Tengo las coordenadas de un triángulo en 3D y necesito calcular su área. Sé cómo hacerlo en 2D, pero no sé cómo calcular el área en 3D. He desarrollado los siguientes datos.

(119.91227722167969, 122.7717056274414, 39.3568115234375), 
(119.8951187133789, 122.7717056274414, 39.38057327270508), 
(121.11941528320312, 123.2818832397461, 38.41301345825195)

1 votos

Para futuros usuarios: las técnicas a continuación se extienden/generalizan con el cálculo exterior; es.wikipedia.org/wiki/%C3%81lgebra_exterior.

1 votos

@InanimateBeing Solo mencionaré que alguien estaba preguntando sobre la etiqueta (solid-geometry) en el Chatroom de etiquetado.

71voto

user21783 Puntos 11

Si tus 3 puntos son A, B, C entonces puedes usar directamente la fórmula del (medio) producto cruzado: $$S=\dfrac{|\mathbf{AB}\times\mathbf{AC}|}2=\dfrac{|\mathbf{AB}||\mathbf{AC}||\sin(\theta)|}2 $$ que es (ver el enlace a Wikipedia para ver el producto cruzado en $\mathbb{R}^3$): $$S=\frac 12 \sqrt{(y_{AB}\cdot z_{AC}-z_{AB}\cdot y_{AC})^2+(z_{AB}\cdot x_{AC}-x_{AB}\cdot z_{AC})^2+(x_{AB}\cdot y_{AC}-y_{AB}\cdot x_{AC})^2}$$ si $\mathbf{AB}=(x_{AB},y_{AB},z_{AB})$ y $\mathbf{AC}=(x_{AC},y_{AC},z_{AC})$

2 votos

La notación aquí es terrible. $ x $ significa $ AB $ y $ y $ significa $ AC $. Entonces ($ x_1 $, $ x_2 $, $ x_3 $) debería llamarse ($AB_x$, $AB_y$, $AB_z$).

0 votos

Esto es en realidad más simple que calcular el producto punto en la mayoría de las bibliotecas 3D

48voto

Dave Puntos 5879

Digamos que tienes 3 puntos $\mathbf{A, B, C}$. Encuentra el ángulo $\theta$ entre $\mathbf{AB}$ y $\mathbf{AC}$ usando el producto punto (es decir, $\mathbf{AB}\cdot\mathbf{AC}=|\mathbf{AB}||\mathbf{AC}|\cos\theta$) y luego puedes encontrar el área del triángulo usando $$ A=\frac{1}{2}|\mathbf{AB}||\mathbf{AC}|\sin\theta $$

8 votos

Tenga en cuenta que $\sin \theta = \sqrt{1 - (\cos\theta)^2}$ le permite calcular $\sin\theta$ más rápido que usando $\cos^{-1}$ y $\sin$.

7 votos

¿No sería más fácil usar el método de matrices/determinantes para encontrar el producto cruz en lugar de encontrar primero $\theta$ y luego usar la fórmula del producto cruz?

22voto

La fórmula de Herón es la más fácil ya que "no requiere una elección arbitraria de lado como base o vértice como origen, contrario a otras fórmulas para el área de un triángulo:" $$A = \sqrt{s(s-a)(s-b)(s-c)}$$ donde $s=p/2$ es la mitad del perímetro $p=a+b+c$ (llamado el semiperímetro del triángulo). Las longitudes de los lados del triángulo pueden obtenerse a través de la norma vectorial de las posiciones relativas: $$a=\|\vec{r}_1-\vec{r}_2\|$$ $$b=\|\vec{r}_2-\vec{r}_3\|$$ $$c=\|\vec{r}_3-\vec{r}_1\|$$

8 votos

Sin embargo, una aplicación ingenua de la fórmula de Herón puede ser desastrosa numéricamente, especialmente si los triángulos en cuestión son delgados. Ver esta nota de Velvel Kahan.

1 votos

Citando a Khan: "Estos defectos en las fórmulas afectan solo a las configuraciones extremas: el triángulo es demasiado degenerado, demasiado parecido a una aguja."

10voto

lalit arora Puntos 39

Si tienes 3 coordenadas en 3D $(x_1,y_1,z_1);(x_2,y_2,z_2);(x_3,y_3,z_3)$ haz dos vectores colineales como $\vec a=(x_2-x_1)I+(y_2-y_1)j+(z_2-z_1)k$ $\vec b=(x_3-x_1)I+(y_3-y_1)j+(z_3-z_1)k$ ahora encuentra el producto vectorial de $\vec a$ y $\vec b$ y el área del triángulo formado será $\frac{1}{2} \| \vec a \times \vec b \|$. Ya tienes tu respuesta deseada.

0 votos

Increíble, ha aclarado mis dudas.

0 votos

Ten en cuenta que esta es la fórmula menos costosa de calcular, ya que no requiere raíces cuadradas ni cálculos trigonométricos. El trabajo principal de computación es el producto cruzado, que solo utiliza multiplicaciones y sumas/restas. EDITAR No, estoy equivocado, en 3D se debe tomar la MAGNITUD del producto cruzado, lo cual requiere una RAÍZ CUADRADA. Por lo tanto, la respuesta de Raymond Manzoni tiene un costo aproximado similar.

3 votos

$\frac12\vec a\times \vec b$ es un vector, pero el área no lo es. Debes escribir $\frac12|\vec a\times \vec b|$

3voto

Donald Reynolds Puntos 21

Alternativamente, si deseas calcular el área en una dimensión arbitraria y has calculado productos punto entre todos los puntos, $a$, $b$ y $c$, puedes calcular el área de una manera que no requiere una elección arbitraria de punto y solo requiere una raíz cuadrada, a diferencia de otras fórmulas:

$$\frac{1}{2}\sqrt{2\left(ab\cdot ac+ab\cdot bc+ac\cdot bc-ac\cdot bb-aa\cdot bc-ab\cdot cc\right)+aa\cdot cc+bb\cdot cc+aa\cdot bb-ab^2-ac^2-bc^2}$$

Donde $ab\rightarrow dot\left(a,b\right)$

Calcula la mitad de la distancia de a a b, y multiplícala por la distancia de c al punto más cercano a c en la recta de a a b.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X