Triangle.Vertex C# (CSharp) Méthode

Vertex() public méthode

public Vertex ( int i ) : Vector3D,
i int
Résultat Vector3D,
    public Vector3D Vertex(int i)
    {
        return points[i];
    }

Usage Example

Exemple #1
0
    public List <HitInfo> IntersectTriangle(Triangle triangle)
    {
        List <HitInfo> res = new List <HitInfo>();

        for (int i = 0; i < vertices.Count; i++)
        {
            LineSegment2D l1 = new LineSegment2D(V2(vertices[i]), V2(vertices[(i + 1) % vertices.Count]));

            for (int j = 0; j < 3; j++)
            {
                LineSegment2D l2 = new LineSegment2D(V2(triangle.Vertex(j)), V2(triangle.Vertex((j + 1) % 3)));
                Vector2D      point;
                if (l1.LineIntersect(l2, out point))
                {
                    double distance      = (point - V2(vertices[i])).magnitude;
                    double segmentLength = l1.Length();
                    //if (l1.DoLinesIntersect(l2)){
                    double   normalizedDistance = distance / segmentLength;
                    Vector3D point3D            = Vector3D.Lerp(new Vector3D(vertices[i]), new Vector3D(vertices[(i + 1) % vertices.Count]), normalizedDistance);
                    res.Add(new HitInfo(i, j, point3D.ToVector3()));
                }

                /*Vector2 intersectionPoint;
                 * if (LineLineIntersection(from,to, tFrom, tTo,out intersectionPoint)){
                 *      float normalizedDistance = Vector3.Dot(to-from, tTo-tFrom);
                 *      Vector3 point3D = Vector3.Lerp (vertices[i], vertices[(i+1)%vertices.Count], normalizedDistance);
                 *      res.Add(new HitInfo(i,j,point3D));
                 * }*/
            }
        }
        return(res);
    }
All Usage Examples Of Triangle::Vertex