答案 0 :(得分:1)
对于给定的段,其中您知道x [2i]和x [2i + 1],如果给定的x介于两者之间,则您有一个交集。最好的检查方法是计算(x-x[2*i])*(x-x[2*i+1])
。如果小于零,则有一个交点。如果等于零,则端点之一在x = 0.6线上。如果大于零,则表示线段的末端在线的同一侧,因此没有交点。
对此进行编程,假设x是一个numpy数组
prod=(0.6-x[::2])*(0.6-x[1::2])
交点数为len(numpy.where(prod>=0)[0])