Vector3.BaryCentric(Vector3,Vector3,Vector3,Single,Single) Method (Microsoft.DirectX)
Returns a point in barycentric coordinates, using specified 3-D vectors.
Definition
Visual Basic Public Shared Function BaryCentric( _
ByVal v1 As Vector3, _
ByVal v2 As Vector3, _
ByVal v3 As Vector3, _
ByVal f As Single, _
ByVal g As Single _
) As Vector3C# public static Vector3 BaryCentric(
Vector3 v1,
Vector3 v2,
Vector3 v3,
float f,
float g
);C++ public:
static Vector3 BaryCentric(
Vector3 v1,
Vector3 v2,
Vector3 v3,
float f,
float g
);JScript public static function BaryCentric(
v1 : Vector3,
v2 : Vector3,
v3 : Vector3,
f : float,
g : float
) : Vector3;
Parameters
v1 Microsoft.DirectX.Vector3
Source Vector3 structure.v2 Microsoft.DirectX.Vector3
Source Vector3 structure.v3 Microsoft.DirectX.Vector3
Source Vector3 structure.f System.Single
Weighting factor. See Remarks.g System.Single
Weighting factor. See Remarks.
Return Value
Microsoft.DirectX.Vector3
A Vector3 structure in barycentric coordinates.
Remarks
The Vector3.BaryCentric method provides a way to understand points in and around a triangle, regardless of where the triangle is actually located. This method returns the resulting point by using the following equation.
v1 + f(v2 - v1) + g(v3 - v1)
Any point in the plane v1v2v3 can be represented by the barycentric coordinates (f, g). The f parameter controls the extent to which v2 gets weighted into the result, and the f parameter controls the extent to which v3 gets weighted into the result. Lastly, (1 - f - g) controls the extent to which v1 gets weighted into the result.
Note the following relations.
- If (f >= 0 && g >=0 && 1 - f - g >= 0), the point is inside the triangle v1v2v3.
- If (f == 0 && g >= 0 && 1 - f - g >= 0), the point is on the line v1v3.
- If (f >= 0 && g == 0 && 1 - f - g >= 0), the point is on the line v1v2.
- If (f >= 0 && g >= 0 && 1 - f - g == 0), the point is on the line v2v3.
Barycentric coordinates are a form of general coordinates. In this context, using them represents a change in coordinate systems. What holds true for Cartesian coordinates holds true for barycentric coordinates.