temp1 = outside.First; //outside是LinkedList<Point>型,temp1是他所对的链表节点型,是临时变量
for(int n=1;n<=outside.Count;n++)
{
if(n<outside.Count)
{
for(int i=0;i<number_point;i++)
{//如果在线外(圈外)
if (true == IsOnLineRight(temp1.Value.X, temp1.Value.Y,
temp1.Next.Value.X, temp1.Next.Value.Y, p[i, 0], p[i, 1]))
{
Point r = new Point(p[i, 0], p[i, 1]);
LinkedListNode<Point> s = new LinkedListNode<Point>(r);
outside.AddAfter(temp1,s);
}
}
temp1 = temp1.Next;
}
else
{//如果是最后一条线,即最后一点到第一点
for (int i = 0; i < number_point; i++)
{//如果在线外(圈外)
if (true == IsOnLineRight(temp1.Value.X, temp1.Value.Y,
outside.First.Value.X, outside.First.Value.Y, p[i, 0], p[i, 1]))
{
Point r = new Point(p[i, 0], p[i, 1]);
LinkedListNode<Point> s = new LinkedListNode<Point>(r);
outside.AddAfter(temp1, s);
}
}
}
}
如果不是数据本来就这么大的话,多半是申请新链表死循环了
new LinkedListNode<Point>(r);