6
Mam następującą funkcję do zamiany punktu na tej samej płaszczyźnie, co trójkąt w punkt barycentryczny.Od barycentrycznego do kartezjańskiego
// p0, p1 and p2 and the points that make up this triangle
Vector3d Tri::barycentric(Vector3d p) {
double triArea = (p1 - p0).cross(p2 - p0).norm() * 0.5;
double u = ((p1 - p).cross(p2 - p).norm() * 0.5)/triArea;
double v = ((p0 - p).cross(p2 - p).norm() * 0.5)/triArea;
double w = ((p0 - p).cross(p1 - p).norm() * 0.5)/triArea;
return Vector3d(u,v,w);
}
Jak mogę zapisać odwrotność tej operacji? Chciałbym napisać funkcję, która przyjmuje koordynator barycentryczny i zwraca punkt kartezjański.