![]() |
![]() |
![]() |
Vector3.BaryCentric Method |
Language: |
Returns a point in barycentric coordinates, using specified 3-D vectors.
Visual Basic .NET 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
);Managed C++ public: static Vector3 BaryCentric(
Vector3 v1,
Vector3 v2,
Vector3 v3,
float f,
float g
);JScript .NET public static function BaryCentric(
v1 : Vector3,
v2 : Vector3,
v3 : Vector3,
f : float,
g : float
) : Vector3;
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.
Microsoft.DirectX.Vector3 . A Vector3 structure in barycentric coordinates.
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.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center