UnsafeNativeMethods.Vector2.BaryCentric Method |
Language: |
Returns a point in barycentric coordinates, using specified 2-D vectors.
Visual Basic Public Shared Function BaryCentric( _
ByVal pOut As Vector2, _
ByVal pV1 As Vector2, _
ByVal pV2 As Vector2, _
ByVal pV3 As Vector2, _
ByVal f As Single, _
ByVal g As Single _
) As Vector2C# public static Vector2 BaryCentric(
Vector2 pOut,
Vector2 pV1,
Vector2 pV2,
Vector2 pV3,
float f,
float g
);C++ public:
static Vector2 BaryCentric(
Vector2 pOut,
Vector2 pV1,
Vector2 pV2,
Vector2 pV3,
float f,
float g
);JScript public static function BaryCentric(
pOut : Vector2,
pV1 : Vector2,
pV2 : Vector2,
pV3 : Vector2,
f : float,
g : float
) : Vector2;
pOut Microsoft.DirectX.Vector2
A Vector2 structure in barycentric coordinates.pV1 Microsoft.DirectX.Vector2
Source Vector2 structure.pV2 Microsoft.DirectX.Vector2
Source Vector2 structure.pV3 Microsoft.DirectX.Vector2
Source Vector2 structure.f System.Single
Weighting factor. See Remarks.g System.Single
Weighting factor. See Remarks.
Microsoft.DirectX.Vector2
A Vector2 structure in barycentric coordinates.
The BaryCentric method provides a way to understand points in and around a triangle, regardless of its actual location. This method returns the resulting point by using the following equation.
pV1 + f(pV2 - pV1) + g(pV3 - pV1)
Any point in the plane pV1pV2pV3 can be represented by the barycentric coordinates (f, g). The f parameter controls the extent to which pV2 gets weighted into the result, and the f parameter controls the extent to which pV3 gets weighted into the result. Lastly, (1 - f - g) controls the extent to which pV1 gets weighted into the result.
Note the following relations.
- If (f >= 0 && g >=0 && 1 - f - g >= 0), the point is inside the triangle pV1pV2pV3.
- If (f == 0 && g >= 0 && 1 - f - g >= 0), the point is on the line pV1pV3.
- If (f >= 0 && g == 0 && 1 - f - g >= 0), the point is on the line pV1pV2.
- If (f >= 0 && g >= 0 && 1 - f - g == 0), the point is on the line pV2pV3.
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 also holds true for barycentric coordinates.
The return value for this method is the same value returned in the pOut parameter. This allows you to use the BaryCentric method as a parameter for another method.
Send comments about this topic to Microsoft. © Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center