diff --git a/2D.py b/2D.py new file mode 100644 index 0000000..fdcb64d --- /dev/null +++ b/2D.py @@ -0,0 +1,120 @@ +from ast import While +import csv +from math import fabs +from msilib import make_id +from posixpath import split +from tkinter.filedialog import askopenfilename +from turtle import width +import pygame +import time + +Pixelsize = 10 +Size = 500 + + + +Height = Size/2 +Width = Size +HeightMiddle = Height/2 +WidthMiddle = Width/2 +joystickScaleHeight = Height/2048 +joystickScaleWidth = Width/2048 + +screen = pygame.display.set_mode((Width,Height+1)) +pygame.display.set_caption('Log Test') +pygame.draw.rect(screen, (0,0,255), (WidthMiddle, 0, 1, Height)) +pygame.display.flip() + +log = askopenfilename() + +ltime = [] + +rud = [] +ele = [] +thr = [] +ail = [] + +with open(log, newline='') as csvfile: + reader = csv.DictReader(csvfile) + for row in reader: + ltime.append(row['Time']) + rud.append(row['Rud']) + ele.append(row['Ele']) + thr.append(row['Thr']) + ail.append(row['Ail']) + + +i = 0 +while i != len(rud): + iRud = int(rud[i]) + iEle = int(ele[i]) + iThr = int(thr[i]) + iAil = int(ail[i]) + + if iRud >= 0: + rud[i] = (iRud + 1024)*(joystickScaleWidth/2) + else: + rud[i] = (1024 - abs(iRud))*(joystickScaleWidth/2) + + if iEle >= 0: + ele[i] = (iEle + 1024)*joystickScaleHeight + else: + ele[i] = (1024 - abs(iEle))*joystickScaleHeight + + if iThr >= 0: + thr[i] = (iThr + 1024)*joystickScaleHeight + else: + thr[i] = (1024 - abs(iThr))*joystickScaleHeight + + if iAil >= 0: + ail[i] = (iAil + 1024)*(joystickScaleWidth/2) + else: + ail[i] = (1024 - abs(iAil))*(joystickScaleWidth/2) + + i+=1 + + +splitTime = [] +for e in ltime: + splitTime.append(e.split(":").pop(2).replace(".", "")) + +meanTime = [] +i = 0 +f = False +for e in splitTime: + if f != False: + if int(e) < int(splitTime[i]): + meanTime.append(60000 - int(splitTime[i]) + int(e)) + else: + meanTime.append(int(e) - int(splitTime[i])) + + i+=1 + else: + f = True + +totalTime = 0 +for e in meanTime: + totalTime+=e + +timelineStep = Width/totalTime + +pygame.draw.circle(screen, (255, 0, 0), (rud[0], ele[0]), Pixelsize) + +while True: + i = 0 + pastTime = 0 + for e in meanTime: + time.sleep(e/1000) + pygame.draw.rect(screen, (0,0,0), (0, 0, Width, Height+1)) + pygame.draw.rect(screen, (0,255,0), (0, Height, pastTime*timelineStep, 1)) + pygame.draw.rect(screen, (0,0,255), (WidthMiddle, 0, 1, Height)) + pygame.draw.circle(screen, (255,0,0), (WidthMiddle+ail[i], Height-ele[i]), Pixelsize) + pygame.draw.circle(screen, (255,0,0), (rud[i], Height-thr[i]), Pixelsize) + pygame.display.flip() + pastTime+=e + i+=1 + + for e in pygame.event.get(): + if e.type == pygame.QUIT: + pygame.quit() + exit() \ No newline at end of file