本文整理汇总了C#中Point2.GetNextEdge方法的典型用法代码示例。如果您正苦于以下问题:C# Point2.GetNextEdge方法的具体用法?C# Point2.GetNextEdge怎么用?C# Point2.GetNextEdge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Point2
的用法示例。
在下文中一共展示了Point2.GetNextEdge方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ArchedPoint2
protected float _radius = 100; // rayon souhaité
#endregion Fields
#region Constructors
public ArchedPoint2(Point2 point)
: base(point)
{
_prevEdge = point.GetPrevEdge ();
_nextEdge = point.GetNextEdge ();
_junction = JunctionType.Curved;
_prevEdge.SetNextPoint2 (this);
_nextEdge.SetPrevPoint2 (this);
Update (false);
}
示例2: SetJunctionType
public void SetJunctionType(int index, JunctionType junction)
{
Point2 selectedPoint = _points[index];
if (selectedPoint.GetJunction () != junction)
{
if (junction == JunctionType.Curved)
{
ArchedPoint2 ap = new ArchedPoint2 (selectedPoint);
_points[index] = ap;
}
else if (junction == JunctionType.Broken)
{
Point2 newPoint = new Point2 (selectedPoint);
newPoint.SetPrevEdge (selectedPoint.GetPrevEdge ());
newPoint.SetNextEdge (selectedPoint.GetNextEdge ());
Edge2 prevEdge = newPoint.GetPrevEdge ();
if (prevEdge != null)
{
prevEdge.SetNextPoint2 (newPoint);
}
Edge2 nextEdge = newPoint.GetNextEdge ();
if (nextEdge != null)
{
nextEdge.SetPrevPoint2 (newPoint);
}
_points[index] = newPoint;
}
}
}
示例3: Polygon
public Polygon(PolygonRawData polygonRawData)
{
_closed = true;
float area = 0;
for (int i = 0; i < polygonRawData.Count; ++i)
{
Vector2 p1 = polygonRawData[i];
Vector2 p2 = polygonRawData[i + 1];
area += p1.x * p2.y - p2.x * p1.y;
}
if (area > 0)
{
polygonRawData.Reverse ();
}
//Debug.Log ("AREA " + area);
Edge2 prevEdge = null;
Point2 prevPt = null;
Point2 currentPt = null;
for (int i = 0; i < polygonRawData.Count - 1; ++i)
{
Vector2 rawPt = polygonRawData[i];
if (currentPt == null)
{
//currentPt = new Point2 (rawPt);
currentPt = new Point2 ();
currentPt.Set(
rawPt.x,
rawPt.y);
}
Point2 nextPt = new Point2 (polygonRawData[i + 1]);
if (i == polygonRawData.Count - 2 && polygonRawData.Count > 2)
{
nextPt = _points[0].GetPrevEdge ().GetPrevPoint2 ();
//nextPt = (Point2)_points[0].GetPrevEdge ().GetPrevPoint2 ().Clone();
//nextPt = new Point2();
nextPt.Set(
_points[0].GetPrevEdge ().GetPrevPoint2 ().GetX(),
_points[0].GetPrevEdge ().GetPrevPoint2 ().GetY());
}
if (prevEdge == null)
{
if (prevPt == null)
{
//prevPt = new Point2 (polygonRawData[i - 1]);
prevPt = new Point2 ();
prevPt.Set(
polygonRawData[i - 1].x,
polygonRawData[i - 1].y);
}
prevEdge = new Edge2 (prevPt, currentPt);
prevPt.SetNextEdge (prevEdge);
}
Edge2 nextEdge = new Edge2 (currentPt, nextPt);
// if (i == polygonRawData.Count - 1)
// {
// nextEdge = _points[0].GetPrevEdge ();
// }
currentPt.SetEdges (prevEdge, nextEdge);
_points.Add (currentPt);
_edges.Add (nextEdge);
if (i == polygonRawData.Count - 2 && polygonRawData.Count >= 2)
{
nextPt.SetPrevEdge (nextEdge);
_edges.Add (nextPt.GetNextEdge ());
_points.Add (nextPt);
}
prevEdge = nextEdge;
prevPt = currentPt;
currentPt = nextPt;
}
if (_edges.Count == 2 && _points.Count == 2)
{
_points[0].SetPrevEdge (null);
_points[1].SetNextEdge (null);
_edges.RemoveAt (1);
}
UpdateBounds ();
}