Share via


UnsafeNativeMethods.Vector2.BaryCentric(Vector2,Vector2,Vector2,Vector2,Single,Single) Method (Microsoft.DirectX)

Returns a point in barycentric coordinates, using specified 2-D vectors.

Note: For programming in Microsoft Visual Basic .NET or Microsoft JScript .NET, use the equivalent method in the Microsoft.DirectX structures.

Definition

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 Vector2
C# 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;

Parameters

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.

Return Value

Microsoft.DirectX.Vector2
A Vector2 structure in barycentric coordinates.

Remarks

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.

See Also