function getCoordinate(c) { var b = new Array(); for (var e = 0; e < c.length; e++) { if (e == 0) { b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) } else { var a = c[e][0] - c[e - 1][0]; var f = c[e][1] - c[e - 1][1]; var d = c[e][2] - c[e - 1][2]; b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) } } return b.join("") } function pretreatment(d, c, b) { var e = string10to64(Math.abs(d)); var a = ""; if (!b) { a += (d > 0 ? "1" : "0") } a += prefixInteger(e, c); return a } function prefixInteger(a, b) { return (Array(b).join(0) + a).slice(-b) } function string10to64(d) { var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") , b = c.length , e = +d , a = []; do { mod = e % b; e = (e - mod) / b; a.unshift(c[mod]) } while (e); return a.join("") } function generate_trace(w) { let index = 0, slide = []; let indexTime = (new Date().getTime().toString()).substr(0, 9); for (let item of base_slide) { index++ item[2] = Number(indexTime + (item[2]).toString().substr(-4)) console.log(item[2]) if (item[0] >= (w + Number(base_slide[0][0]))) { slide = base_slide.slice(0, index) slide.push([(w + Number(base_slide[0][0])).toString(), item[1], item[2] + 700 + Math.ceil(Math.random() * 1000)]) break; } } let last = Number(slide[slide.length - 1][0]) let pIndex = 0; for (let item of sway_slide) { let times; if (pIndex === 0 || pIndex === sway_slide.length - 1) { times = slide[slide.length - 1][2] } else { times = slide[slide.length - 1][2] + (sway_slide[pIndex + 1][2] - sway_slide[pIndex][2]) } slide.push([ (item[0] + last).toString(), '367', times ]); pIndex++; } return getCoordinate(slide); } // 初始化滑动轨迹 let base_slide = [ [ "944", "341", 1637921521380 ], [ "967", "369", 1637921521380 ], [ "967", "369", 1637921521382 ], [ "968", "369", 1637921521481 ], [ "968", "369", 1637921521497 ], [ "969", "369", 1637921521505 ], [ "970", "369", 1637921521521 ], [ "971", "369", 1637921521537 ], [ "972", "369", 1637921521545 ], [ "973", "369", 1637921521561 ], [ "974", "369", 1637921521569 ], [ "976", "369", 1637921521577 ], [ "976", "369", 1637921521585 ], [ "978", "369", 1637921521593 ], [ "979", "369", 1637921521601 ], [ "980", "369", 1637921521609 ], [ "981", "369", 1637921521617 ], [ "982", "369", 1637921521625 ], [ "984", "369", 1637921521633 ], [ "985", "369", 1637921521641 ], [ "987", "369", 1637921521657 ], [ "988", "369", 1637921521665 ], [ "990", "369", 1637921521673 ], [ "991", "369", 1637921521681 ], [ "992", "369", 1637921521689 ], [ "993", "369", 1637921521697 ], [ "995", "369", 1637921521705 ], [ "996", "369", 1637921521713 ], [ "999", "369", 1637921521721 ], [ "1002", "369", 1637921521729 ], [ "1004", "369", 1637921521737 ], [ "1006", "369", 1637921521745 ], [ "1008", "369", 1637921521753 ], [ "1009", "369", 1637921521761 ], [ "1012", "369", 1637921521769 ], [ "1013", "369", 1637921521777 ], [ "1015", "369", 1637921521785 ], [ "1016", "369", 1637921521793 ], [ "1018", "369", 1637921521801 ], [ "1020", "369", 1637921521809 ], [ "1022", "369", 1637921521817 ], [ "1023", "369", 1637921521825 ], [ "1026", "369", 1637921521833 ], [ "1028", "369", 1637921521841 ], [ "1030", "369", 1637921521849 ], [ "1032", "369", 1637921521857 ], [ "1036", "369", 1637921521865 ], [ "1036", "369", 1637921521873 ], [ "1040", "369", 1637921521881 ], [ "1041", "369", 1637921521890 ], [ "1044", "369", 1637921521897 ], [ "1046", "369", 1637921521905 ], [ "1048", "369", 1637921521914 ], [ "1051", "369", 1637921521921 ], [ "1052", "369", 1637921521930 ], [ "1054", "369", 1637921521937 ], [ "1055", "369", 1637921521945 ], [ "1057", "369", 1637921521953 ], [ "1059", "369", 1637921521961 ], [ "1060", "369", 1637921521969 ], [ "1064", "369", 1637921521978 ], [ "1065", "369", 1637921521985 ], [ "1067", "369", 1637921521993 ], [ "1069", "369", 1637921522001 ], [ "1072", "369", 1637921522009 ], [ "1072", "369", 1637921522017 ], [ "1076", "369", 1637921522025 ], [ "1078", "369", 1637921522033 ], [ "1079", "369", 1637921522041 ], [ "1082", "369", 1637921522049 ], [ "1084", "369", 1637921522057 ], [ "1087", "369", 1637921522065 ], [ "1089", "369", 1637921522073 ], [ "1092", "369", 1637921522081 ], [ "1095", "369", 1637921522089 ], [ "1097", "369", 1637921522097 ], [ "1100", "369", 1637921522105 ], [ "1104", "369", 1637921522113 ], [ "1104", "369", 1637921522121 ], [ "1108", "369", 1637921522129 ], [ "1109", "369", 1637921522137 ], [ "1111", "369", 1637921522145 ], [ "1114", "369", 1637921522153 ], [ "1115", "369", 1637921522161 ], [ "1116", "369", 1637921522169 ], [ "1117", "369", 1637921522178 ], [ "1119", "369", 1637921522185 ], [ "1120", "369", 1637921522193 ], [ "1121", "369", 1637921522201 ], [ "1122", "369", 1637921522209 ], [ "1124", "369", 1637921522217 ], [ "1125", "369", 1637921522225 ], [ "1126", "369", 1637921522233 ], [ "1128", "369", 1637921522241 ], [ "1128", "369", 1637921522249 ], [ "1130", "369", 1637921522257 ], [ "1131", "369", 1637921522265 ], [ "1132", "369", 1637921522281 ], [ "1134", "369", 1637921522289 ], [ "1136", "369", 1637921522305 ], [ "1138", "369", 1637921522321 ], [ "1140", "369", 1637921522329 ], [ "1141", "369", 1637921522337 ], [ "1143", "369", 1637921522345 ], [ "1144", "369", 1637921522353 ], [ "1144", "369", 1637921522361 ], [ "1146", "369", 1637921522369 ], [ "1146", "369", 1637921522381 ], [ "1147", "369", 1637921522385 ], [ "1148", "369", 1637921522395 ], [ "1148", "369", 1637921522401 ], [ "1149", "369", 1637921522409 ], [ "1150", "369", 1637921522417 ], [ "1151", "369", 1637921522425 ], [ "1152", "369", 1637921522433 ], [ "1153", "369", 1637921522449 ], [ "1155", "369", 1637921522457 ], [ "1156", "369", 1637921522481 ], [ "1156", "369", 1637921522513 ], [ "1157", "369", 1637921522529 ], [ "1158", "369", 1637921522537 ], [ "1159", "369", 1637921522545 ], [ "1160", "369", 1637921522561 ], [ "1162", "369", 1637921522569 ], [ "1164", "369", 1637921522609 ], [ "1164", "369", 1637921522617 ], [ "1165", "369", 1637921522633 ], [ "1166", "369", 1637921522641 ], [ "1167", "369", 1637921522649 ], [ "1168", "369", 1637921522657 ], [ "1170", "369", 1637921522665 ], [ "1171", "369", 1637921522673 ], [ "1172", "369", 1637921522681 ], [ "1173", "369", 1637921522689 ], [ "1174", "369", 1637921522697 ], [ "1175", "369", 1637921522705 ], [ "1176", "369", 1637921522753 ], [ "1176", "369", 1637921522769 ], [ "1177", "369", 1637921522777 ], [ "1179", "369", 1637921522793 ], [ "1180", "369", 1637921522809 ], [ "1180", "369", 1637921522817 ], [ "1181", "369", 1637921522825 ], [ "1182", "369", 1637921522849 ], [ "1183", "369", 1637921522873 ], [ "1183", "369", 1637921522880 ], [ "1184", "369", 1637921522897 ], [ "1184", "369", 1637921522921 ], [ "1185", "369", 1637921522945 ], [ "1186", "369", 1637921522961 ], [ "1188", "369", 1637921522985 ], [ "1190", "369", 1637921522993 ], [ "1192", "369", 1637921523001 ], [ "1193", "369", 1637921523010 ], [ "1196", "369", 1637921523017 ], [ "1197", "369", 1637921523033 ], [ "1199", "369", 1637921523049 ], [ "1200", "369", 1637921523057 ], [ "1200", "369", 1637921523065 ], [ "1201", "369", 1637921523073 ], [ "1202", "369", 1637921523081 ], [ "1204", "369", 1637921523089 ], [ "1204", "369", 1637921523097 ], [ "1205", "369", 1637921523105 ], [ "1207", "369", 1637921523113 ], [ "1208", "369", 1637921523121 ], [ "1208", "369", 1637921523145 ], [ "1210", "368", 1637921523201 ], [ "1211", "368", 1637921523249 ], [ "1211", "368", 1637921523380 ], [ "1211", "368", 1637921523481 ] ] // 晃动轨迹 let sway_slide = [ //晃动 [ 0, "160", 1638111121463 ], [ 1, "160", 1638111121467 ], [ 2, "160", 1638111121486 ], [ 3, "160", 1638111121498 ], [ 3, "159", 1638111121499 ], [ 4, "159", 1638111121511 ], [ 4, "159", 1638111121520 ], [ 5, "159", 1638111121523 ], [ 6, "159", 1638111121532 ], [ 7, "159", 1638111121538 ], [ 8, "159", 1638111121547 ], [ 8, "159", 1638111121551 ], [ 9, "159", 1638111121555 ], [ 9, "158", 1638111121558 ], [ 10, "158", 1638111121564 ], [ 11, "158", 1638111121570 ], [ 11, "157", 1638111121572 ], [ 12, "157", 1638111121589 ], [ 12, "157", 1638111121644 ], [ 13, "157", 1638111121677 ], [ 14, "157", 1638111121714 ], [ 14, "157", 1638111121715 ], [ 15, "157", 1638111121719 ], [ 16, "157", 1638111121732 ], [ 16, "156", 1638111121735 ], [ 16, "156", 1638111121737 ], [ 17, "156", 1638111121741 ], [ 17, "155", 1638111121745 ], [ 18, "155", 1638111121758 ], [ 19, "155", 1638111121765 ], [ 20, "155", 1638111121782 ], [ 19, "155", 1638111121903 ], [ 18, "155", 1638111121916 ], [ 17, "155", 1638111121925 ], [ 16, "155", 1638111121931 ], [ 16, "155", 1638111121939 ], [ 15, "155", 1638111121947 ], [ 14, "155", 1638111121953 ], [ 13, "155", 1638111121970 ], [ 12, "155", 1638111121975 ], [ 12, "155", 1638111121983 ], [ 12, "156", 1638111121994 ], [ 11, "156", 1638111122009 ], [ 10, "156", 1638111122013 ], [ 9, "157", 1638111122039 ], [ 8, "157", 1638111122053 ], [ 8, "157", 1638111122059 ], [ 7, "157", 1638111122074 ], [ 7, "157", 1638111122078 ], [ 6, "157", 1638111122079 ], [ 5, "157", 1638111122092 ], [ 4, "157", 1638111122123 ], [ 4, "158", 1638111122128 ], [ 4, "158", 1638111122165 ], [ 3, "158", 1638111122240 ], [ 2, "158", 1638111122255 ], [ 2, "159", 1638111122298 ], [ 1, "159", 1638111122337 ], [ 0, "159", 1638111122438 ], [ 0, "160", 1638111122444 ], [ 0, "160", 1638111122489 ], [ 0, "160", 1638111122858 ] ]