Пример #1
0
def render():  #绘制

    bk = gol.get_value("bk")

    app_mark.blit(bk, (0, 0), None, BLEND_MULT)
    app_mark.blit(bk, (0, 0), None, BLEND_MAX)

    BG_SCREEN.blit(bk, (0, 0))
    BASE_SCREEN.blit(BG_SCREEN, (0, 0))

    current_map.render()
    routeRender()
    current_map.renderLDMKS()
    current_map.renderCross()
    ali_mark = gol.get_value("map_mark")
    MAP_MARK.fill((0, 0, 0, ali_mark))

    MAP_MARK.blit(app_mark, (0, 0))
    renderControls()
    debugRender()
    BASE_SCREEN.blit(SCRIBE_SCREEN, (SCREEN_HEIGHT, 170))
    BASE_SCREEN.blit(MAP_SCREEN, (0, 0))
    BASE_SCREEN.blit(MAP_MARK, (0, 0))
    detailLayerRender()

    BASE_SCREEN.blit(
        gol.font_Scribe.render(str("WagLplanner v2.1.1 by Lantern"), True,
                               (255, 255, 255, 128)),
        (SCREEN_WIDTH - 200, SCREEN_HEIGHT - 25))

    pass
Пример #2
0
def dragAnimationUpdate():  #阻尼拖拽动画
    global current_map
    drag_kinetic_energy_x = gol.get_value("drag_kinetic_energy_x")
    drag_kinetic_energy_z = gol.get_value("drag_kinetic_energy_z")
    drag_velocity_x = math.sqrt(2 * math.fabs(drag_kinetic_energy_x))  #单位质量
    drag_velocity_z = math.sqrt(2 * math.fabs(drag_kinetic_energy_z))

    drag_force_x = gol.get_value("drag_f") * drag_velocity_x  #阻尼定义
    drag_force_z = gol.get_value("drag_f") * drag_velocity_z

    if drag_kinetic_energy_x < 0:
        drag_velocity_x = -drag_velocity_x
    if drag_kinetic_energy_z < 0:
        drag_velocity_z = -drag_velocity_z

    if (math.fabs(drag_velocity_x) + math.fabs(drag_velocity_z) < 1):
        drag_velocity_x = 0
        drag_velocity_z = 0
        drag_kinetic_energy_x = 0
        drag_kinetic_energy_z = 0

    else:
        current_map.OFFSET_X = current_map.OFFSET_X - (drag_velocity_x * 0.01)
        current_map.OFFSET_Z = current_map.OFFSET_Z - (drag_velocity_z * 0.01)
        drag_kinetic_energy_x = drag_kinetic_energy_x - drag_force_x * (
            drag_velocity_x) * 0.01
        drag_kinetic_energy_z = drag_kinetic_energy_z - drag_force_z * (
            drag_velocity_z) * 0.01

    gol.set_value("drag_kinetic_energy_x", drag_kinetic_energy_x)
    gol.set_value("drag_kinetic_energy_z", drag_kinetic_energy_z)
Пример #3
0
 def retranslateUi(self, Dialog):
     _translate = QtCore.QCoreApplication.translate
     Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
     __sortingEnabled = self.listWidget.isSortingEnabled()
     self.listWidget.setSortingEnabled(False)
     self.listWidget.itemClicked.connect(self.jump_to_GroupOperation)
     self.listWidget.setSortingEnabled(__sortingEnabled)
     self.toolButton.setText(_translate("Dialog", "+"))
     self.toolButton.clicked.connect(self.jump_to_GroupOperation)
     self.pushButton.setText(_translate("Dialog", "send"))
     self.pushButton_2.setText(_translate("Dialog", "-"))
     self.SelfGroupLayout()
     group_name = gol.get_value('GroupName')
     group_id = gol.get_value('GroupId')
     print(group_name)
     self.textBrowser.setHtml(
         _translate(
             "Dialog",
             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
             "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
             "p, li { white-space: pre-wrap; }\n"
             "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
             "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">"
             + group_name + "<br/>" + group_id + "</p></body></html>"))
     self.pushButton.clicked.connect(self.SelfChatSend)
     self.pushButton_2.clicked.connect(self.QuitChat)
     __sortingEnabled = self.listWidget_2.isSortingEnabled()
     self.listWidget_2.setSortingEnabled(False)
     self.listWidget_2.setSortingEnabled(__sortingEnabled)
     t = threading.Thread(target=self.ReceiveMessage)
     t.start()
Пример #4
0
    def SelfGroupLayout(self):
        global url
        global hed
        global group_id
        url = gol.get_value('url')
        hed = gol.get_value('hed')
        api = '/api/group'
        group_id = gol.get_value('GroupId')
        print(group_id)
        page = 1
        per_page = 10
        data = {'group_id': group_id, 'page': page, 'per_page': per_page}

        r = requests.post(url + api, json=data, headers=hed)
        print("获取指定分组包括组员的群组信息")
        print(r.json())

        global GroupPage
        GroupPage = r.json()
        if not 'items' in GroupPage == None:
            member = GroupPage['items']
            print('群成员为', member)
            for line in member:
                if not line['nickname'] == None:
                    GroupMemberName = line['nickname']
                    print('群成员具体nickname为', GroupMemberName)
                    self.listWidget.addItem(GroupMemberName)
Пример #5
0
    def addRowContent(self, content):
        rowcount = self.Table_widget.rowCount()
        self.Table_widget.insertRow(rowcount)
        content.insert(0, str(rowcount))
        for i in range(len(content)):
            self.Table_widget.setItem(rowcount, i,
                                      QTableWidgetItem(content[i]))
            self.Table_widget.resizeColumnsToContents()
            self.Table_widget.resizeRowsToContents()
        cbox = ComboBox(parent=self.Table_widget)
        itemdist = fc.retmatdiv(MATDIROOT)
        for k, v in itemdist.items():
            if v == "dir":
                k = k + "\tD"
            elif v == "mtl":
                k = k + "\tM"
            cbox.addItem(k)
            self.flushtable()
        ####################################################
        indextext = ''
        if os.path.exists(gol.get_value('WORKPATH') + "/" + "config"):
            configpath = gol.get_value('WORKPATH') + "\\config"
            objson = fc.loadJson(configpath)
            try:
                context = objson[content[1]]
            except KeyError:
                context = ''
            if not context == '':
                if self.mdict == None:
                    self.mdict = self.getAllMaterials()
                indextext = str(self.mdict[context]).split('\\')[0]
                #print(indextext)
            else:
                indextext = ''
        else:
            if os.path.exists(gol.get_value('WORKPATH') + "/" + "config"):
                pass
            else:
                if not self.mdict == None:
                    self.mdict.clear()
                self.mdict = None
        if indextext == '':
            cbox.setCurrentIndex(-1)
        else:
            cbox.setCurrentText(indextext + '\t' + 'D')
        ########################################################
        self.Table_widget.setCellWidget(rowcount, MATSTARTCOL, cbox)
        self.Table_widget.viewport().update()

        def emit_Signal_comboboxchange(msg):
            cbox.comboboxchange.emit(rowcount, MATSTARTCOL,
                                     MATDIROOT + "\\" + msg)

        cbox.currentTextChanged.connect(self.flushtable)
        cbox.comboboxchange.connect(self.slotCombobox)
        cbox.currentTextChanged.connect(emit_Signal_comboboxchange)
        QApplication.processEvents()
        if not indextext == '':
            cbox.currentTextChanged.emit(cbox.currentText())
Пример #6
0
def get_port_description(role, id, port):
    link_table = gol.get_value('link_table')
    device_name_dict = gol.get_value('device_name_dict')
    #global link_table
    port_desc = ''
    for i in link_table:
        if i[0].split('-')[-2] + i[0].split('-')[-1] == role + str(
                id) and i[2].split('-')[-2] + i[2].split('-')[-1] == port:
            port_desc = 'To-' + device_name_dict.get(i[2]) + '-' + i[3]
            break
    return port_desc
Пример #7
0
    def addColComBox(self, row, col, path):
        if not self.Table_widget.columnCount() > col:
            self.Table_widget.insertColumn(col)
        combox = ComboBox(self.Table_widget)
        itemdist = fc.retmatdiv(path)
        for k, v in itemdist.items():
            if v == "dir":
                k = k + "\tD"
            elif v == "mtl":
                k = k + "\tM"
            combox.addItem(k)

        indextext = ''
        if os.path.exists(gol.get_value('WORKPATH') + "\\" +
                          "config") and self.InitFlag:
            #self.InitFlag=False
            configpath = gol.get_value('WORKPATH') + "\\config"
            objson = fc.loadJson(configpath)
            context = objson[self.Table_widget.item(row, 1).text()]
            if not context == '':
                if not self.mdict == None:
                    self.mdict = self.getAllMaterials()
                l = self.mdict[context]
                indextext = l.split('\\')[col - 3]
                #print(indextext)
            else:
                indextext = ''
        else:
            if os.path.exists(gol.get_value('WORKPATH') + "/" + "config"):
                pass
            else:
                if not self.mdict == None:
                    self.mdict.clear()
                self.mdict = None
        if indextext == '':
            combox.setCurrentIndex(-1)
        elif re.search('.*\.mtl$', indextext) == None:
            combox.setCurrentText(indextext + "\tD")
        else:
            combox.setCurrentText(context + "\tM")

        self.Table_widget.setCellWidget(row, col, combox)
        self.Table_widget.viewport().update()

        def emit_Signal_comboboxchange(msg):
            combox.comboboxchange.emit(row, col, path + "\\" + msg)

        combox.currentTextChanged.connect(self.flushtable)
        combox.comboboxchange.connect(self.slotCombobox)
        combox.currentTextChanged.connect(emit_Signal_comboboxchange)
        if re.search('.*\.mtl$', indextext) == None:
            #self.InitFlag=True
            combox.currentTextChanged.emit(combox.currentText())
Пример #8
0
    def renderLDMKS(self):

        layer_ldmk_sw = gol.get_value("layer_ldmk_sw")
        layer_ldmc_sw = gol.get_value("layer_ldmc_sw")
        layer_wlwl_sw = gol.get_value("layer_wlwl_sw")

        if gol.get_value("map_jump_sw") == 1:
            MAP_SCREEN.blit(
                gol.font_Basis.render(str("自动寻路中..."), True, (100, 0, 0, 128)),
                (20, 30))
        if layer_ldmk_sw == True:
            self.landmarks_manager.render(self.OFFSET_X, self.OFFSET_Z,
                                          self.SCALE)
Пример #9
0
 def thr():
     shutil.copyfile("./startkeyshot.py",
                     gol.get_value('WORKPATH') + "\\startkeyshot.py")
     print("开始渲染", gol.get_value('WORKPATH'))
     process = Popen([
         'keyshot', '-script',
         gol.get_value('WORKPATH') + "\\startkeyshot.py", '>', 'log.txt'
     ],
                     shell=True,
                     cwd=gol.get_value('WORKPATH'),
                     encoding="utf-8")
     path = gol.get_value('WORKPATH')
     process.wait()
     os.remove(path + "\\startkeyshot.py")
     self.reng.setEnabled(True)
Пример #10
0
 def SendMessage(self):
     global hed
     global token
     global auth_token
     global url
     global group_id
     group_id = gol.get_value('GroupId')
     url = gol.get_value('url')
     hed = gol.get_value('hed')
     api = '/api/message/send'
     content = self.plainTextEdit.toPlainText()
     data = {'group_id': group_id, 'content': content}
     r = requests.post(url + api, json=data, headers=hed)
     print("发送消息")
     print(r.json())
Пример #11
0
def mouseMoveHandler(x, y, mouse_area):  #鼠标移动事件处理
    global mouse_posx, mouse_posy, mosue_posx_old, mouse_posy_old, velocity_x, velocity_z, left_button_down
    mouse_posx_old = mouse_posx
    mouse_posy_old = mouse_posy
    mouse_posx = x
    mouse_posy = y
    if left_button_down == 1:
        dx = mouse_posx - mouse_posx_old
        dz = mouse_posy - mouse_posy_old
        current_map.OFFSET_X = current_map.OFFSET_X - (dx / 100 * 16 *
                                                       current_map.SCALE)
        current_map.OFFSET_Z = current_map.OFFSET_Z - (dz / 100 * 16 *
                                                       current_map.SCALE)
        velocity_x = dx * 5 * current_map.SCALE
        velocity_z = dz * 5 * current_map.SCALE
    if mouse_area == IN_SWITCH:

        for item in controls:
            item.onPassedBy(x - SCREEN_HEIGHT, y)

        for item in layers:
            item.onPassedBy(x - SCREEN_HEIGHT, y)

        for item in expanders:
            item.onPassedBy(x - SCREEN_HEIGHT, y)

    if mouse_area == IN_DETAIL:

        detail_controls = gol.get_value("detail_controls")
        for item in detail_controls:
            item.onPassedBy(x - 50, y - 50)
Пример #12
0
def lightAnimationUpdate():  #遮罩层动画
    ali = gol.get_value("map_mark")
    if (ali > 0):
        ali = ali - int(math.log(ali + 1))
    else:
        ali = 0
    gol.set_value("map_mark", ali)
Пример #13
0
def closeDetail(id):  #收缩细节窗口

    for item in expanders:
        if item.id == id:
            if not item.isPassedBy(mouse_posx - SCREEN_HEIGHT, mouse_posy):
                item.onClick()

    if id == 7:
        gol.set_value("detail_end", 0)
        gol.set_value("detail_endx", 980)
        gol.set_value("detail_endy", 30)

    if id == 8:
        gol.set_value("detail_end", 0)
        gol.set_value("detail_endx", 980)
        gol.set_value("detail_endy", 70)

    if id == 9:
        gol.set_value("detail_end", 0)
        gol.set_value("detail_endx", 980)
        gol.set_value("detail_endy", 110)
    gol.set_value("detail_menu", 0)
    detail_controls = gol.get_value("detail_controls")
    detail_controls.clear()
    gol.set_value("detail_controls", detail_controls)
    detail_id = 0
Пример #14
0
 def JoinGroup(self):
     global group_name
     url = gol.get_value('url')
     hed = gol.get_value('hed')
     api = '/api/group/join'
     group_id = self.lineEdit.text()
     page = 1
     per_page = 10
     data = {'group_id': group_id}
     r = requests.post(url + api, json=data, headers=hed)
     print("加入群组")
     print(r.json())
     group_name = r.json()['group_name']
     print(group_name)
     gol.set_value('GroupId', group_id)
     gol.set_value('GroupName', group_name)
     self.jump_to_MainChat()
Пример #15
0
def get_address(role_name, device_id, port, index=0):
    address_mask_dict = gol.get_value('address_mask_dict')
    #global address_mask_dict
    try:
        address = address_mask_dict.get(
            str(role_name) + '-' + str(device_id) + port)[index].split('/')[0]
    except:
        address = ''
    return address
Пример #16
0
def expandHandler(id, selected):  #展开事件处理
    global id_detail
    if selected == True:
        if id == 7:
            gol.set_value("detail_end", 1)
            gol.set_value("detail_endx", 50)
            gol.set_value("detail_endy", 50)
            id_detail = 7
            gol.set_value("detail_menu", 1)

            detail_controls = gol.get_value("detail_controls")
            oringinal_x = 20
            oringinal_y = 15
            for item in current_map.landmarks_manager.landmarks:

                string = str("%s (x: %d , z: %d)" %
                             (item.name, item.posx, item.posz))
                ldmk_button = control.DetailSwitch(
                    (400, 30), (oringinal_x, oringinal_y), item.color, string,
                    item.id)
                detail_controls.append(ldmk_button)

                oringinal_y = oringinal_y + 30
                if oringinal_y > SCREEN_HEIGHT - 125:
                    oringinal_x = oringinal_x + 410
                    oringinal_y = 15

            control_btn_next = control.Button((32, 32), (890, 30),
                                              (0, 0, 0, 0), "操作按钮之下一页", 21,
                                              "btn_next.png")
            control_btn_last = control.Button((32, 32), (890, 70),
                                              (0, 0, 0, 0), "操作按钮之上一页", 22,
                                              "btn_last.png")
            control_btn_goto = control.Button((32, 32), (890, 140),
                                              (0, 0, 0, 0), "操作按钮之跳转", 23,
                                              "btn_goto.png")
            detail_controls.append(control_btn_next)
            detail_controls.append(control_btn_last)
            detail_controls.append(control_btn_goto)
            gol.set_value("detail_controls", detail_controls)

        if id == 8:
            gol.set_value("detail_end", 1)
            gol.set_value("detail_endx", 50)
            gol.set_value("detail_endy", 50)
            id_detail = 8
            gol.set_value("detail_menu", 2)

        if id == 9:
            gol.set_value("detail_end", 1)
            gol.set_value("detail_endx", 50)
            gol.set_value("detail_endy", 50)
            id_detail = 9
            gol.set_value("detail_menu", 3)

    if selected == False:
        closeDetail(id)
Пример #17
0
 def retranslateUi(self, Dialog):
     _translate = QtCore.QCoreApplication.translate
     Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
     self.label.setText(_translate("Dialog", "ERROR"))
     message = gol.get_value('registerEM')
     print(message)
     self.label_2.setText(message)
     self.pushButton.setText(_translate("Dialog", "确定"))
     self.pushButton.clicked.connect(self.jump_to_Register)
Пример #18
0
def get_network_status():
    #print(gol._global_dict)
    out = subprocess.getstatusoutput("ping %s -f -c 10" %
                                     gol.get_value("mcu_ip"))
    #print(out)
    if not out[0]:
        re = out[1].split(',')[2:]
        gol.set_value("packet loss", re[0].split()[0])
        gol.set_value(re[1].split(' = ')[0].split('\n')[1],
                      re[1].split(' = ')[1])
Пример #19
0
def animationUpdate():
    global current_map
    current_map = gol.get_value("current_map")
    zoomAnimationUpdate()
    dragAnimationUpdate()
    lightAnimationUpdate()
    controlsAnimationUpdate()
    detailAnimationUpdate()
    bkAnimationUpdate()
    mapOffsetAnimationUpdate()
Пример #20
0
def bandwidth():
    """
    获取到特定ip的流量,bytes,返回一个数组,进入的bytes数,发出的bytes数;[234.11,2233.33]
    """
    cmd = "iptables -nvxL|grep %s|awk '{print $2}'" % gol.get_value("mcu_ip")
    out = subprocess.getstatusoutput(cmd)
    if not out[0]:
        st = map(lambda x: int(x) * 8 / 1000, out[1].split())
        #print(st)
        return list(st)
Пример #21
0
def bkAnimationUpdate():  #背景切换动画
    bk_alpha = gol.get_value("bk_alpha")
    bk_tend = gol.get_value("bk_end")
    bk = gol.get_value("bk")
    if bk_alpha < 100:
        if bk_tend == 1:
            bk_main.set_alpha(bk_alpha)
            bk.blit(bk_main, (0, 0))
        if bk_tend == 2:
            bk_hell.set_alpha(bk_alpha)
            bk.blit(bk_hell, (0, 0))
        if bk_tend == 3:
            bk_end.set_alpha(bk_alpha)
            bk.blit(bk_end, (0, 0))

        bk_alpha = bk_alpha + 1
        if bk_alpha > 70 and bk_alpha < 99:
            bk_alpha = 99
        gol.set_value("bk_alpha", bk_alpha)
        gol.set_value("bk", bk)
Пример #22
0
def detailLayerRender():  #细节窗口绘制

    global detail_controls
    scale = gol.get_value("detail_scale")
    position_x = gol.get_value("detail_posx")
    position_y = gol.get_value("detail_posy")
    position = (position_x, position_y)

    detail_controls = gol.get_value("detail_controls")

    new_size = (int(
        (SCREEN_WIDTH - 100) * scale), int((SCREEN_HEIGHT - 100) * scale))
    if (new_size[0] + new_size[1] > 20):
        DETAIL_SCREEN.fill((128, 128, 128, 200))
        if id_detail == 7:
            for item in detail_controls:
                item.render(DETAIL_SCREEN, (0, 0, 0, 255))

        A = pygame.transform.scale(DETAIL_SCREEN, new_size)
        BASE_SCREEN.blit(A, position)
Пример #23
0
def get_gateway(role_name, device_id, port, index=0):
    address_mask_dict = gol.get_value('address_mask_dict')
    #global address_mask_dict
    try:
        address_mask = address_mask_dict.get(
            str(role_name) + '-' + str(device_id) + port)[index]
        net = ipaddress.ip_network(address_mask, strict=False)
        gateway = str([x for x in net.hosts()][0])
    except:
        gateway = ''
    return gateway
def write_symptom(word_all,word_map):
    """

    :param word_all:
    :param word_map:
    :return:
    """
    word_all = sorted(word_all, key=len, reverse=True)#按照字符数从大到小排序
    df = pd.read_csv('data/prescription_10000.csv',encoding=gol.get_value('CODE'))
    df.rename(columns={'id': '序号', 'title': '方名', '标准药物名称': '处方'}, inplace=True)  #['id','title','主治','','药物组成'] ['序号','方名','主治','symptom','处方']
    #新加一列
    col_name = df.columns.tolist()
    col_name.insert(8, 'symptom')
    df = df.reindex(columns=col_name)
    for index, row in df.iterrows():
        function = row['主治']
        small_list = max_match2(function,word_all)
        small_list = [word_map[x] for x in small_list]
        df.loc[index,'symptom'] = ' '.join(small_list)
    df.to_csv(gol.get_value('ENTITY_FILE'),encoding=gol.get_value('CODE'),index=0,columns=['name'])
def write_symptom2(word_map2):
    """
    使用similar_words.csv第一次匹配,替换,再用同义词进行第二次替换
    :return:
    """
    # 创建替换词典
    with open('similar_word/split.txt','r',encoding='utf8') as f:
        line_list = f.readlines()
    word_map = {}
    for line in line_list:
        line = line.strip()
        line_sep = line.split(',')
        word_map[line_sep[0]]=line_sep[1].split()
    #使用all_words.txt第一次匹配
    with open('similar_word/all_words.txt','r',encoding='utf8') as f:
        word_all = f.readlines()
    word_all = [x.strip() for x in word_all]
    #处理原始文件
    df = pd.read_csv('data/prescription_10000.csv', encoding=gol.get_value('CODE'),usecols=['id','title','处方来源','药物组成','主治','标准药物名称'])
    df.rename(columns={'id': '序号', 'title': '方名', '标准药物名称': '处方','处方来源':'出处'},inplace=True)
    # 新加一列
    col_name = df.columns.tolist()
    col_name.insert(6, 'symptom_1')
    col_name.insert(6, 'symptom_2')
    col_name.insert(6, 'symptom')
    df = df.reindex(columns=col_name)
    for index, row in df.iterrows():
        function = row['主治']
        small_list1 = max_match2(function, word_all)
        df.loc[index, 'symptom_1'] = ' '.join(small_list1)
        small_list2 = []
        for word in small_list1:
            if(word in word_map):
                small_list2.extend(word_map[word])
            else:
                small_list2.append(word)
        df.loc[index, 'symptom_2'] = ' '.join(small_list2)

        small_list3 = [word_map2[x] if x in word_map2 else '' for x in small_list2]
        df.loc[index, 'symptom'] = ' '.join(small_list3)
    df.to_csv(gol.get_value('ENTITY_FILE'), encoding=gol.get_value('CODE'), index=0,columns=['序号','方名','主治','symptom_1','symptom_2','symptom','药物组成','处方','出处'])
Пример #26
0
    def GroupsLayout(self):

        global GroupName
        global groups
        global GroupId
        groups = gol.get_value('groups')

        for line in groups:
            if not line['group_name'] == None:
                GroupName = line['group_name'] + '_' + str(line['id'])
                print(GroupName)
                self.listWidget.addItem(GroupName)
Пример #27
0
def zoomAnimationUpdate():  #阻尼缩放动画
    global current_map
    zoom_kinetic_energy = gol.get_value("zoom_kinetic_energy")
    zoom_velocity = math.sqrt(2 * math.fabs(zoom_kinetic_energy))  #单位质量
    zoom_force = gol.get_value("zoom_f") * zoom_velocity
    if zoom_kinetic_energy < 0:
        zoom_velocity = -zoom_velocity
    if (math.fabs(zoom_velocity) < 0.2):
        zoom_velocity = 0
        zoom_kinetic_energy = 0
    else:
        current_map.SCALE = current_map.SCALE + (zoom_velocity * 0.01) * (
            current_map.SCALE + 1)
        zoom_kinetic_energy = zoom_kinetic_energy - zoom_force * (
            zoom_velocity) * 0.01
        if current_map.SCALE > 40:
            current_map.SCALE = 40
        if current_map.SCALE < 0.1:
            current_map.SCALE = 0.1

    gol.set_value("zoom_kinetic_energy", zoom_kinetic_energy)
Пример #28
0
def detailAnimationUpdate():  #细节窗口动画
    detail_end = gol.get_value("detail_end")
    detail_endx = gol.get_value("detail_endx")
    detail_endy = gol.get_value("detail_endy")
    detail_scale = gol.get_value("detail_scale")
    detail_posx = gol.get_value("detail_posx")
    detail_posy = gol.get_value("detail_posy")
    err = detail_end - detail_scale
    errx = detail_endx - detail_posx
    erry = detail_endy - detail_posy
    detail_velocity = err * 0.14  #比例控制器
    detail_velocityx = errx * 0.14  #比例控制器
    detail_velocityy = erry * 0.2  #比例控制器
    if (math.fabs(err) + math.fabs(errx) + math.fabs(erry)) < 0.05:
        detail_scale = detail_end
        #detail_posx = detail_endx
        #detail_posy = detail_endy
    else:
        detail_scale = detail_scale + detail_velocity
        detail_posx = detail_posx + detail_velocityx
        detail_posy = detail_posy + detail_velocityy

    gol.set_value("detail_scale", detail_scale)
    gol.set_value("detail_posx", detail_posx)
    gol.set_value("detail_posy", detail_posy)
def create_list():
    """"
    由同义词集返回所有同义词列表
    :return: word_all:所有同义词;word_map:{词:首义词}
    """
    with open(gol.get_value('SYNONYM_FILE') ,'r',encoding=gol.get_value('CODE')) as f:
        file_list = f.readlines()
        word_num = len(file_list)
        word_list = []#首义词list
        word_map = {}#词:首义词
        word_all = []#所有词list
        for line in file_list:
            line_list = line.strip().split()
            first_word = line_list[0]#首义词
            word_list.append(first_word)
            for word in line_list:
                word_map[word] = first_word
                if(word in word_all):
                    print('重复词:'+word)
                else:
                    word_all.append(word)
    return word_all,word_map
Пример #30
0
def get_mask(role_name, device_id, port, index=0, type=0):
    address_mask_dict = gol.get_value('address_mask_dict')
    #global address_mask_dict
    try:
        mask = address_mask_dict.get(
            str(role_name) + '-' + str(device_id) + port)[index].split('/')[1]
        b = (int(mask) * "1") + ((32 - int(mask)) * "0")
        b = [int(x, 2) for x in (b[:8], b[8:16], b[16:24], b[24:])]
        maskb = "%s.%s.%s.%s" % tuple(b)
        if type == 0:
            mask = maskb
    except:
        mask = ''
    return mask