def init(self): # Load your textures self.tex.loadTexture() # Load shaders and verify each myShaders = shaderSetup(None) self.tshader = myShaders.readAndCompile("texture.vert", "texture.frag") if self.tshader <= 0: print("Error setting up Texture shaders") raise Exception("Error setting up Texture Shaders", "fatal") sys.exit(1) self.pshader = myShaders.readAndCompile("phong.vert", "phong.frag") if self.pshader <= 0: print("Error setting up Phong shaders") raise Exception("Error setting up Phong Shaders", "fatal") sys.exit(1) self.rshader = myShaders.readAndCompile("rphong.vert", "rphong.frag") if self.rshader <= 0: print("Error setting up rPhong shaders") raise Exception("Error setting up rPhong Shaders", "fatal") sys.exit(1) self.penshader = myShaders.readAndCompile("pphong.vert", "pphong.frag") if self.penshader <= 0: print("Error setting up pPhong shaders") raise Exception("Error setting up pPhong Shaders", "fatal") sys.exit(1) # Other OpenGL initialization glEnable(GL_DEPTH_TEST) glClearColor(0.0, 0.0, 0.0, 0.0) glPolygonMode(GL_FRONT_AND_BACK, GL_FILL) glClearDepth(1.0) # create pyramid myShape = pyramid() myShape.clear() myShape.makePyramid() self.tVao = self.createVAO(myShape, self.pshader, self.pyramidBuffers) # create rocket myShape = rocket() myShape.clear() myShape.makeRocket() self.rVao = self.createVAO(myShape, self.rshader, self.rocketBuffers) # create pen myShape = pen() myShape.clear() myShape.makePen() self.pVao = self.createVAO(myShape, self.penshader, self.penBuffers) # create quad myShape = quad() myShape.clear() myShape.makeQuad() self.qVao = self.createVAO(myShape, self.tshader, self.quadBuffers)
def __init__(self, population, target): self.pop_max = population self.rockets = [] self.target = target for _ in range(self.pop_max): r = rocket(location=Pvector(400, 800), target=self.target) self.rockets.append(r)
def actionreset_clicked(self): print('actionreset_clicked clicked') self.mm = mmc.marsmission() self.mr = mmr.rocket() self.amm = mma.animmm(self.mm) self.mm = self.amm.getmarsmission() self.mm.rocket = self.mr
def get_simple_machine(): # position orientation velocity omega mass w/0 boosters lenght radius sm = rocket(np.array([0.0,0.0,5.0]), np.array([0.0,0.0,1.0]), np.array([0.0,0.0,0.0]), np.array([0.0,0.0,0.0]), 100.0, 10.0, 0.5) # name position length radius cstar frho thrust sm.add_booster('Booster1',np.array([0.0,0.0,-5.0]), 60.0, 0.45, 20000.0, 1000.0, 5000000.0) # name position orientation thrust sm.add_stabalizer('StabalizerXP',np.array([0.5,0.0,4.5]), np.array([1.0,0.0,0.0]), 1100.0) sm.add_stabalizer('StabalizerXN',np.array([-0.5,0.0,4.5]), np.array([-1.0,0.0,0.0]), 1100.0) sm.add_stabalizer('StabalizerYP',np.array([0.0,0.5,4.5]), np.array([0.0,1.0,0.0]), 1100.0) sm.add_stabalizer('StabalizerYN',np.array([0.0,-0.5,4.5]), np.array([0.0,-1.0,0.0]), 1100.0) sm.update_MOI() return sm
def drawGraph(self,vectors,specs): crashed = False thrust = specs['thrust'] m = specs['baseMass'] increment = 1 # how many seconds pass every iteration tList = [] posList = [] aList = [] vList = [] #outputted values #instantiating... fuelLeft = 0 totalMass = 0 time = 0 while vectors['t2'] < specs['length']: #How many seconds the program lasts for. vectors['t2'] += increment time = vectors['t2'] tList.append(vectors['t2']) fuelLeft = rocket().fuelRemaining(time,specs['fuelAmount'],specs['ejectionRate']) if fuelLeft == 0: thrust = 0 totalMass = m + fuelLeft * specs['fuelMass'] gravAcc = rocket().accDueToGravity(vectors['x2']) vectors['a2'] = rocket().acceleration(time,thrust,totalMass,gravAcc) aList.append(vectors['a2']) vectors.pop('x2',None) vectors['x2'] = rocket().position(time,vectors) if vectors['x2'] < 0: print colored("Your craft has collided with the ground.\n", 'red') crashed = True break posList.append(vectors['x2']) vectors['v2'] = rocket().velocity(time,vectors['v2'],vectors['a2'],vectors['a1']) vList.append(vectors['v2']) if crashed == False: self.display('Acceleration','M/S^2',aList,tList) self.display('Displacement','M',posList,tList) self.display('Velocity','M/S',vList,tList) plt.show()
def mmquickstart(): mm = mmc.marsmission() mr = mmr.rocket() mm.control[mmc.ctl.DT] = 100 print(mm.control[mmc.ctl.DT]) print(mm.state[mmc.st.VXE]) print(mm.state[mmc.st.XE]) amm = mma.animmm(mm) mm = amm.getmarsmission() mm.rocket = mr print(mr.payload) print(mm.getallstates()) return amm, mm, mr
def create_children(self): self.normalize_fitness() mating_pool = [] for i in self.rockets: n = int(i.fitness) for _ in range(n): mating_pool.append(i) next_gen = [] while len(next_gen) < self.pop_max: flag = True while flag: a = np.random.randint(0, len(mating_pool)) b = np.random.randint(0, len(mating_pool)) for i in range(len(mating_pool[a].genes.gene)): if mating_pool[a].genes.gene[i] != mating_pool[ b].genes.gene[i]: flag = False break child = DNA.crossover(mating_pool[a], mating_pool[b]) child = rocket(location=Pvector(400, 800), target=self.target, genes=child) next_gen.append(child) self.rockets = next_gen
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(593, 584) self.infile = "mmdata.txt" self.outfile = "mmdata.txt" self.mm = mmc.marsmission() self.mr = mmr.rocket() self.amm = mma.animmm(self.mm) self.mm = self.amm.getmarsmission() self.mm.rocket = self.mr self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.groupBox = QtWidgets.QGroupBox(self.centralwidget) self.groupBox.setGeometry(QtCore.QRect(420, 70, 120, 191)) self.groupBox.setObjectName("groupBox") self.rb_sat_rocket = QtWidgets.QRadioButton(self.groupBox) self.rb_sat_rocket.setGeometry(QtCore.QRect(20, 90, 82, 17)) self.rb_sat_rocket.setObjectName("rb_sat_rocket") self.rb_sat_mars = QtWidgets.QRadioButton(self.groupBox) self.rb_sat_mars.setGeometry(QtCore.QRect(20, 120, 82, 17)) self.rb_sat_mars.setObjectName("rb_sat_mars") self.rb_sat_moon = QtWidgets.QRadioButton(self.groupBox) self.rb_sat_moon.setGeometry(QtCore.QRect(20, 60, 82, 17)) self.rb_sat_moon.setObjectName("rb_sat_moon") self.rb_sat_earth = QtWidgets.QRadioButton(self.groupBox) self.rb_sat_earth.setGeometry(QtCore.QRect(20, 20, 82, 17)) self.rb_sat_earth.setObjectName("rb_sat_earth") self.rb_sat_sun = QtWidgets.QRadioButton(self.groupBox) self.rb_sat_sun.setGeometry(QtCore.QRect(20, 150, 82, 17)) self.rb_sat_sun.setObjectName("rb_sat_sun") self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget) self.groupBox_2.setGeometry(QtCore.QRect(430, 350, 121, 121)) self.groupBox_2.setObjectName("groupBox_2") self.pb_sim_start = QtWidgets.QPushButton(self.groupBox_2) self.pb_sim_start.setGeometry(QtCore.QRect(20, 20, 75, 23)) self.pb_sim_start.setObjectName("pb_sim_start") self.pb_sim_stop = QtWidgets.QPushButton(self.groupBox_2) self.pb_sim_stop.setGeometry(QtCore.QRect(20, 50, 75, 23)) self.pb_sim_stop.setObjectName("pb_sim_stop") self.pb_sim_updatestate = QtWidgets.QPushButton(self.groupBox_2) self.pb_sim_updatestate.setGeometry(QtCore.QRect(20, 80, 75, 23)) self.pb_sim_updatestate.setObjectName("pb_sim_updatestate") self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget) self.groupBox_3.setGeometry(QtCore.QRect(90, 320, 271, 181)) self.groupBox_3.setObjectName("groupBox_3") self.txted_time = QtWidgets.QTextEdit(self.groupBox_3) self.txted_time.setEnabled(False) self.txted_time.setGeometry(QtCore.QRect(150, 30, 81, 31)) self.txted_time.setObjectName("txted_time") self.label = QtWidgets.QLabel(self.groupBox_3) self.label.setGeometry(QtCore.QRect(50, 30, 71, 16)) self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(self.groupBox_3) self.label_2.setGeometry(QtCore.QRect(40, 80, 101, 20)) self.label_2.setObjectName("label_2") self.txted_timestep = QtWidgets.QTextEdit(self.groupBox_3) self.txted_timestep.setEnabled(True) self.txted_timestep.setGeometry(QtCore.QRect(150, 80, 81, 31)) self.txted_timestep.setObjectName("txted_timestep") self.txted_timestep.setText("0") self.txted_saveinterval = QtWidgets.QTextEdit(self.groupBox_3) self.txted_saveinterval.setEnabled(True) self.txted_saveinterval.setGeometry(QtCore.QRect(150, 130, 81, 31)) self.txted_saveinterval.setObjectName("txted_saveinterval") self.txted_saveinterval.setText("0") self.label_3 = QtWidgets.QLabel(self.groupBox_3) self.label_3.setGeometry(QtCore.QRect(40, 130, 101, 20)) self.label_3.setObjectName("label_3") self.groupBox_4 = QtWidgets.QGroupBox(self.centralwidget) self.groupBox_4.setGeometry(QtCore.QRect(40, 50, 351, 231)) self.groupBox_4.setObjectName("groupBox_4") self.label_4 = QtWidgets.QLabel(self.groupBox_4) self.label_4.setGeometry(QtCore.QRect(30, 50, 21, 16)) self.label_4.setObjectName("label_4") self.txted_x = QtWidgets.QTextEdit(self.groupBox_4) self.txted_x.setEnabled(False) self.txted_x.setGeometry(QtCore.QRect(50, 40, 81, 31)) self.txted_x.setObjectName("txted_x") self.label_5 = QtWidgets.QLabel(self.groupBox_4) self.label_5.setGeometry(QtCore.QRect(140, 50, 21, 16)) self.label_5.setObjectName("label_5") self.label_6 = QtWidgets.QLabel(self.groupBox_4) self.label_6.setGeometry(QtCore.QRect(180, 50, 21, 16)) self.label_6.setObjectName("label_6") self.txted_y = QtWidgets.QTextEdit(self.groupBox_4) self.txted_y.setEnabled(False) self.txted_y.setGeometry(QtCore.QRect(200, 40, 81, 31)) self.txted_y.setObjectName("txted_y") self.label_7 = QtWidgets.QLabel(self.groupBox_4) self.label_7.setGeometry(QtCore.QRect(290, 50, 21, 16)) self.label_7.setObjectName("label_7") self.txted_vy = QtWidgets.QTextEdit(self.groupBox_4) self.txted_vy.setEnabled(False) self.txted_vy.setGeometry(QtCore.QRect(200, 100, 81, 31)) self.txted_vy.setObjectName("txted_vy") self.label_8 = QtWidgets.QLabel(self.groupBox_4) self.label_8.setGeometry(QtCore.QRect(30, 110, 21, 20)) self.label_8.setObjectName("label_8") self.label_9 = QtWidgets.QLabel(self.groupBox_4) self.label_9.setGeometry(QtCore.QRect(180, 110, 21, 16)) self.label_9.setObjectName("label_9") self.txted_vx = QtWidgets.QTextEdit(self.groupBox_4) self.txted_vx.setEnabled(False) self.txted_vx.setGeometry(QtCore.QRect(50, 100, 81, 31)) self.txted_vx.setObjectName("txted_vx") self.label_10 = QtWidgets.QLabel(self.groupBox_4) self.label_10.setGeometry(QtCore.QRect(140, 110, 21, 16)) self.label_10.setObjectName("label_10") self.label_11 = QtWidgets.QLabel(self.groupBox_4) self.label_11.setGeometry(QtCore.QRect(290, 110, 21, 16)) self.label_11.setObjectName("label_11") self.txted_fy = QtWidgets.QTextEdit(self.groupBox_4) self.txted_fy.setEnabled(True) self.txted_fy.setGeometry(QtCore.QRect(200, 160, 81, 31)) self.txted_fy.setObjectName("txted_fy") self.txted_fy.setText("0") self.label_12 = QtWidgets.QLabel(self.groupBox_4) self.label_12.setGeometry(QtCore.QRect(30, 170, 21, 16)) self.label_12.setObjectName("label_12") self.label_13 = QtWidgets.QLabel(self.groupBox_4) self.label_13.setGeometry(QtCore.QRect(180, 170, 21, 16)) self.label_13.setObjectName("label_13") self.txted_fx = QtWidgets.QTextEdit(self.groupBox_4) self.txted_fx.setEnabled(True) self.txted_fx.setGeometry(QtCore.QRect(50, 160, 81, 31)) self.txted_fx.setObjectName("txted_fx") self.txted_fx.setText("0") self.label_14 = QtWidgets.QLabel(self.groupBox_4) self.label_14.setGeometry(QtCore.QRect(140, 170, 21, 16)) self.label_14.setObjectName("label_14") self.label_15 = QtWidgets.QLabel(self.groupBox_4) self.label_15.setGeometry(QtCore.QRect(290, 170, 21, 16)) self.label_15.setObjectName("label_15") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 593, 21)) self.menubar.setObjectName("menubar") self.menuFile = QtWidgets.QMenu(self.menubar) self.menuFile.setObjectName("menuFile") self.menuSimulation = QtWidgets.QMenu(self.menubar) self.menuSimulation.setObjectName("menuSimulation") self.menuOrbitProperties = QtWidgets.QMenu(self.menubar) self.menuOrbitProperties.setObjectName("menuOrbitProperties") self.menuRocket = QtWidgets.QMenu(self.menubar) self.menuRocket.setObjectName("menuRocket") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionOpen = QtWidgets.QAction(MainWindow) self.actionOpen.setObjectName("actionOpen") self.actionSave = QtWidgets.QAction(MainWindow) self.actionSave.setObjectName("actionSave") self.actionInitialise = QtWidgets.QAction(MainWindow) self.actionInitialise.setObjectName("actionInitialise") self.actionReset = QtWidgets.QAction(MainWindow) self.actionReset.setObjectName("actionReset") self.actionDistance = QtWidgets.QAction(MainWindow) self.actionDistance.setObjectName("actionDistance") self.actionSpeeds = QtWidgets.QAction(MainWindow) self.actionSpeeds.setObjectName("actionSpeeds") self.actionAngles = QtWidgets.QAction(MainWindow) self.actionAngles.setObjectName("actionAngles") self.actionProperties = QtWidgets.QAction(MainWindow) self.actionProperties.setObjectName("actionProperties") self.actionPayload = QtWidgets.QAction(MainWindow) self.actionPayload.setObjectName("actionPayload") self.menuFile.addAction(self.actionOpen) self.menuFile.addAction(self.actionSave) self.menuSimulation.addAction(self.actionInitialise) self.menuSimulation.addAction(self.actionReset) self.menuOrbitProperties.addAction(self.actionDistance) self.menuOrbitProperties.addAction(self.actionSpeeds) self.menuOrbitProperties.addAction(self.actionAngles) self.menuRocket.addAction(self.actionProperties) self.menuRocket.addAction(self.actionPayload) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuSimulation.menuAction()) self.menubar.addAction(self.menuOrbitProperties.menuAction()) self.menubar.addAction(self.menuRocket.menuAction()) self.pb_sim_start.clicked.connect(self.pb_sim_start_clicked) self.pb_sim_stop.clicked.connect(self.pb_sim_stop_clicked) self.pb_sim_updatestate.clicked.connect( self.pb_sim_updatestate_clicked) self.rb_sat_earth.clicked.connect(self.rb_sat_earth_clicked) self.rb_sat_moon.clicked.connect(self.rb_sat_moon_clicked) self.rb_sat_rocket.clicked.connect(self.rb_sat_rocket_clicked) self.rb_sat_mars.clicked.connect(self.rb_sat_mars_clicked) self.rb_sat_sun.clicked.connect(self.rb_sat_sun_clicked) self.actionOpen.triggered.connect(self.actionopen_clicked) self.actionSave.triggered.connect(self.actionsave_clicked) self.actionInitialise.triggered.connect(self.actioninitialise_clicked) self.actionReset.triggered.connect(self.actionreset_clicked) self.actionDistance.triggered.connect(self.actiondistance_clicked) self.actionSpeeds.triggered.connect(self.actionspeeds_clicked) self.actionAngles.triggered.connect(self.actionangles_clicked) self.actionProperties.triggered.connect(self.actionproperties_clicked) self.actionPayload.triggered.connect(self.actionpayload_clicked) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
import animmm as mma #marstest animation class import rocket as mmr mm = mmc.marsmission() amm = mma.animmm(mm) #mm=amm.getmarsmission() #print(mm.getallstates()) #print(mm.control) mm.state[mmc.ctl.DT] = 2000 mm.control[mmc.ctl.FX] = -.001 mm.control[mmc.ctl.FY] = -.001 rock = mmr.rocket() mm.rocket = rock print(rock) print(rock.payload) print(rock.mass) print(rock.rockprop) mm.updaterocket() print(rock.payload) #print(rock.mass) #amm.startanimation()
def ingame(surface: pygame.surface.Surface): """ Create the asteroids Initialise necessary variables """ asteroid_count = 8 clock = pygame.time.Clock() font = pygame.font.Font("ARCADECLASSIC.TTF", 48) score = 0 score_img = font.render(str(score), True, (200, 200, 200), background_color) score_rect = score_img.get_rect() score_rect.topright = (constants.window_width - 30, 30) asteroids_group = pygame.sprite.Group() for i in range(0, asteroid_count): tmp_start_vel = [0, 0] tmp_start_pos = [0, 0] if numpy.random.random() < 0.5: tmp_start_pos = [ -constants.asteroid_radius, constants.window_height * (0.1 + numpy.random.random() * 0.8) ] tmp_start_vel = [constants.asteroid_start_vel, 0] else: tmp_start_pos = [ constants.window_width + constants.asteroid_radius, constants.window_height * numpy.random.random() ] tmp_start_vel = [-constants.asteroid_start_vel, 0] tmp = asteroid.asteroid( asteroid_count, numpy.array(tmp_start_pos), constants.generalise_height(constants.asteroid_radius), numpy.array(tmp_start_vel)) asteroids_group.add(tmp) player = rocket.rocket() bullets = [] parent = None parent_qual = 0 last_best_check_tick = -1000 is_running = True while is_running: """ Calculate the time taken for the previous frame and cap FPS to 60 """ dt = clock.tick(60) / 1000.0 """ Handle input and quit events """ for event in pygame.event.get(): if event.type == pygame.QUIT: return GAME_STATES.QUIT elif event.type == pygame.KEYUP: if event.key == pygame.K_ESCAPE: ret = pause_menu(surface) if ret != GAME_STATES.IN_GAME: return ret """ If the player is dead, display the game over menu """ if player.status == rocket.ROCKET_STATUS.DEAD: return game_over_menu(surface, score) """ Update positions and velocities of bullets, asteroids and player """ asteroids_group.update(asteroids_group, player, dt, bullets) player.update(asteroids_group, dt, bullets) for i in range(0, len(bullets)): bullets[i].update(dt) """ Remove destroyed asteroids, and create new ones if necessary """ to_be_removed = [] if parent is None: parent = asteroids_group.sprites()[0] parent_qual = calc_quality(parent) for a in asteroids_group: qual = calc_quality(a) if qual > parent_qual: parent = a parent_qual = qual for ast in asteroids_group: if ast.status == asteroid.ASTEROID_STATUS.DESTROYED: to_be_removed.append(ast) if ast.destroyed_by_player: """ Increment the score and update the score display if an asteroid has been destroyed by the player """ score += 1 score_img = font.render(str(score), True, (200, 200, 200), background_color) score_rect = score_img.get_rect() score_rect.topright = (constants.window_width - 30, 30) for r in to_be_removed: asteroids_group.remove(r) tmp_start_vel = [0, 0] tmp_start_pos = [0, 0] if numpy.random.random() < 0.5: tmp_start_pos = [ 0 - constants.asteroid_radius, constants.window_height * (0.1 + numpy.random.random() * 0.8) ] tmp_start_vel = [constants.asteroid_start_vel, 0] else: tmp_start_pos = [ constants.window_width + constants.asteroid_radius, constants.window_height * numpy.random.random() ] tmp_start_vel = [-constants.asteroid_start_vel, 0] tmp = asteroid.asteroid( asteroid_count, numpy.array(tmp_start_pos), constants.generalise_height(constants.asteroid_radius), numpy.array(tmp_start_vel)) tmp.evolve_from(parent) asteroids_group.add(tmp) to_be_removed = [] """ Clear the background and draw the player, asteroids and the bullets """ surface.fill(background_color) for i in range(0, len(bullets)): pos = bullets[i].position if pos[0] < 0 or pos[0] > constants.window_width or pos[1] < 0 or\ pos[1] > constants.window_height: to_be_removed.append(bullets[i]) bullets[i].draw(surface) for i in to_be_removed: bullets.remove(i) asteroids_group.draw(surface) surface.blit(player.image, player.rect) surface.blit(score_img, score_rect) pygame.display.update()
def upload(): global ans products = User_Products if request.method == 'POST': if request.form.get('Do_something'): pro = request.form.get('Do_something') pro = pro.split(" ") for i in pro: print(i) user_id = products.insert_one({ "email": session["username"], "product_name": pro[0], "price": pro[1], "product_link": pro[2], "img_link": pro[3], "web_img": pro[4] }) if user_id: print("Inserted") flash('Product added to track', 'success') return render_template('Result.html', dictionary=ans) else: query = request.form['query'] category = request.form['category'] print(query) print(category) query = query.lower() check_product = check_pro(query, category) if check_product: products = Products pid = products.find({"query": query, "category": category}) answer = {} y = {} for doc in pid: y = doc key = y["title"] answer.setdefault(key, []) answer[key].append(y["price"]) answer[key].append(y["link"]) answer[key].append(y["image"]) answer[key].append(y["shop_image"]) else: if (category == "Grocery"): df1 = daraz.daraz(query) answer = dict(df1) answer.update(yayvo.yayvo(query)) answer.update(hummart.hummart(query)) #print(answer) elif (category == "Mobile and Tablets" or category == "Laptop and Desktop"): df1 = daraz.daraz(query) answer = dict(df1) answer.update(yayvo.yayvo(query)) answer.update(goto.goto(query)) #answer.update(ishopping.ishopping(driver,query)) answer.update(mega.mega(query)) answer.update(rocket.rocket(query)) answer.update(itshop.itshop(query)) answer.update(symbios.symbios(query)) else: #answer.update(shophive.shophive(driver,query)) df1 = daraz.daraz(query) answer = dict(df1) answer.update(rocket.rocket(query)) answer.update(yayvo.yayvo(query)) answer.update(goto.goto(query)) #answer.update(ishopping.ishopping(driver,query)) ans = answer ans = sorted(ans.items(), key=lambda e: e[1][0]) ans = dict(ans) store_product(ans, query, category) return render_template('Result.html', dictionary=ans)
def main(): specs = rocket().getSpecs() variables = rocket().deriveVectors(specs) graph().drawGraph(variables,specs)