typos
This commit is contained in:
parent
7d1c0ab017
commit
01eea90b3c
@ -90,27 +90,26 @@ void b3HullShape::ComputeMass(b3MassData* data, float32 density) const
|
|||||||
// int(f(x, y, z) * dV) = sum(int(dot(F, N_k) * dS)), k..n.
|
// int(f(x, y, z) * dV) = sum(int(dot(F, N_k) * dS)), k..n.
|
||||||
// If the normal N_k is constant over the triangle and s is an axis in the direction of F,
|
// If the normal N_k is constant over the triangle and s is an axis in the direction of F,
|
||||||
// we can bring N_k outside the integral
|
// we can bring N_k outside the integral
|
||||||
// int(dV) = sum(dot(N_k, s) * int(f(x, y, z) * dS)), k..n.
|
// int(f(x, y, z) * dV) = sum(dot(N_k, s) * int(g(x, y, z) * dS)), k..n.
|
||||||
|
|
||||||
// We need to compute surface integrals, where the f above is to be integrated along a triangle.
|
// We need to compute surface integrals, where the g above is to be integrated along a triangle.
|
||||||
// Changing coordinates from (x, y, z) to (u, v) a formula for a integral along the triangle is
|
// Changing coordinates from (x, y, z) to (u, v) a formula for a integral along the triangle is
|
||||||
// int(f(x(u, v), y(u, v), z(u, v)) * norm(cross(e1, e2)) * du * dv)
|
// int(g(x(u, v), y(u, v), z(u, v)) * norm(cross(e1, e2)) * du * dv)
|
||||||
// where f is a parametrization for a triangle
|
// where g is a parametrization for a triangle
|
||||||
// x = x1 + e1x * u + e2x * v
|
// x = x1 + e1x * u + e2x * v
|
||||||
// y = y1 + e1y * u + e2y * v
|
// y = y1 + e1y * u + e2y * v
|
||||||
// z = z1 + e1z * u + e2z * v
|
// z = z1 + e1z * u + e2z * v
|
||||||
// and 0 <= u, 0 <= v, u + v <= 1
|
// and 0 <= u, 0 <= v, u + v <= 1
|
||||||
// We can view the surface integral above also as
|
// We can view the surface integral above also as
|
||||||
// int(f * det(D) * du * dv)
|
// int(g * det(D) * du * dv)
|
||||||
// where D is the Jacobian of the parametrization:
|
// where D is the Jacobian of the parametrization:
|
||||||
// D = cross(e1, e2)
|
// D = cross(e1, e2)
|
||||||
|
// We integrate x, y, and z over [0, 1 - v] and then over [0, 1].
|
||||||
|
|
||||||
// Thus, using the fact that
|
// Thus, using the fact that
|
||||||
// N_k = D / norm(D),
|
// N_k = D / norm(D),
|
||||||
// the surface integral can be further simplified to
|
// the surface integral can be further simplified to
|
||||||
// sum(dot(D, s) * int(f(x(u, v), y(u, v), z(u, v)) * du * dv))
|
// sum(dot(D, s) * int(g(x(u, v), y(u, v), z(u, v)) * du * dv))
|
||||||
|
|
||||||
// We integrate f over [0, 1 - v] and then over [0, 1].
|
|
||||||
|
|
||||||
// These double integrals are done either by a CAS or by hand.
|
// These double integrals are done either by a CAS or by hand.
|
||||||
// Here, it was used the great SymPy.
|
// Here, it was used the great SymPy.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user