Кодовый код 10 марширующих площадей (2 изолинии) - PullRequest
0 голосов
/ 27 февраля 2020

Я использую алгоритм марширующих квадратов для рисования контуров вокруг данных о погоде в массивах 2D numpy. Алгоритм в целом работает. Изолинии нарисованы в соответствии с 16 случаями . Мой алгоритм имеет проблемы с делом 10, в котором должны быть нарисованы 2 изолинии. В частности, он пытается получить две точки пересечения здесь:

[_i1,_i2]=self.getIntersects(_sv) 

, что приводит к следующему:

    def getIntersects(self,_val):
        print(_val)
        index=[]
        if _val[0] * _val[1] < 0:
            index.append([0,1])
        if _val[1] * _val[2] < 0:
            index.append([1,2])
        if _val[2] * _val[3] < 0:
            index.append([2,3])
        if _val[3] * _val[0] < 0:
            index.append([3,0])
        return index

Проблема в том, что «мой» алгоритм ожидает только два возвращенных индекса, но в случае 10 мы имеем:

[-1,50,-1,50]

Что возвращает 4 индекса.

Есть идеи, как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...