本文整理汇总了C#中IntPoint.ToString方法的典型用法代码示例。如果您正苦于以下问题:C# IntPoint.ToString方法的具体用法?C# IntPoint.ToString怎么用?C# IntPoint.ToString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IntPoint
的用法示例。
在下文中一共展示了IntPoint.ToString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreatePathInsideBoundary
public bool CreatePathInsideBoundary(IntPoint startPoint, IntPoint endPoint, List<IntPoint> pathThatIsInside)
{
if (saveDebugData)
{
using (StreamWriter sw = File.AppendText("test.txt"))
{
if (boundry)
{
string pointsString = bounderyPolygons.WriteToString();
sw.WriteLine(pointsString);
}
sw.WriteLine(startPoint.ToString() + " " + endPoint.ToString());
}
}
if ((endPoint - startPoint).ShorterThen(1500))
{
// If the movement is very short (not a lot of time to ooze filament)
// then don't add any points
return true;
}
bool addEndpoint = false;
//Check if we are inside the comb boundaries
if (!PointIsInsideBoundary(startPoint))
{
if (!MovePointInsideBoundary(ref startPoint))
{
//If we fail to move the point inside the comb boundary we need to retract.
return false;
}
pathThatIsInside.Add(startPoint);
}
if (!PointIsInsideBoundary(endPoint))
{
if (!MovePointInsideBoundary(ref endPoint))
{
//If we fail to move the point inside the comb boundary we need to retract.
return false;
}
addEndpoint = true;
}
// Check if we are crossing any bounderies
if (!DoesLineCrossBoundery(startPoint, endPoint))
{
//We're not crossing any boundaries. So skip the comb generation.
if (!addEndpoint && pathThatIsInside.Count == 0)
{
//Only skip if we didn't move the start and end point.
return true;
}
}
// Calculate the matrix to change points so they are in the direction of the line segment.
{
IntPoint diff = endPoint - startPoint;
lineToSameYMatrix = new PointMatrix(diff);
this.rotatedStartPoint = lineToSameYMatrix.apply(startPoint);
this.rotatedEndPoint = lineToSameYMatrix.apply(endPoint);
}
// Calculate the minimum and maximum positions where we cross the comb boundary
CalcMinMax();
long nomalizedStartX = rotatedStartPoint.X;
List<IntPoint> pointList = new List<IntPoint>();
// Now walk trough the crossings, for every boundary we cross, find the initial cross point and the exit point.
// Then add all the points in between to the pointList and continue with the next boundary we will cross,
// until there are no more boundaries to cross.
// This gives a path from the start to finish curved around the holes that it encounters.
while (true)
{
// if we go up enough we should run into the boundry
int abovePolyIndex = GetPolygonIndexAbove(nomalizedStartX);
if (abovePolyIndex < 0)
{
break;
}
pointList.Add(lineToSameYMatrix.unapply(new IntPoint(minXPosition[abovePolyIndex] - 200, rotatedStartPoint.Y)));
if ((indexOfMinX[abovePolyIndex] - indexOfMaxX[abovePolyIndex] + bounderyPolygons[abovePolyIndex].Count) % bounderyPolygons[abovePolyIndex].Count > (indexOfMaxX[abovePolyIndex] - indexOfMinX[abovePolyIndex] + bounderyPolygons[abovePolyIndex].Count) % bounderyPolygons[abovePolyIndex].Count)
{
for (int i = indexOfMinX[abovePolyIndex]; i != indexOfMaxX[abovePolyIndex]; i = (i < bounderyPolygons[abovePolyIndex].Count - 1) ? (i + 1) : (0))
{
pointList.Add(GetBounderyPointWithOffset(abovePolyIndex, i));
}
}
else
{
indexOfMinX[abovePolyIndex]--;
if (indexOfMinX[abovePolyIndex] == -1)
{
indexOfMinX[abovePolyIndex] = bounderyPolygons[abovePolyIndex].Count - 1;
}
//.........这里部分代码省略.........