Share via


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 Vector3
C# 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.