Exemplo n.º 1
0
 def initalize(self):
     self.spd = 0.1
     self.wav = self.slid_wav.value
     self.point1 = physics.point_source(radius = 0.01, speed= self.spd, wavelength = self.wav)
     #self.point1.vel = physics.vector3(0.1,0)
     self.point2 = physics.point_source(radius = 0.01, speed= self.spd, wavelength = self.wav)
     self.points = [self.point1, self.point2]
     for point in self.points:
         point.mousedown = False
Exemplo n.º 2
0
 def initalize(self):
     self.spd = 0.1
     self.wav = self.slid_wav.value
     self.point1 = physics.point_source(radius = 0.01, speed= self.spd, wavelength = self.wav)
     #self.point1.vel = physics.vector3(0.1,0)
     self.point2 = physics.point_source(radius = 0.01, speed= self.spd, wavelength = self.wav)
     self.points = [self.point1, self.point2]
     for point in self.points:
         point.mousedown = False
 def initalize(self):
     self.spd = 0.1
     self.wav = float(self.txt_wave.text)
     self.point1 = physics.point_source(radius = 0.01, speed= 0, wavelength = self.wav)
     self.point1.vel = physics.vector3(0.1,0)
     self.points = [self.point1]
     for point in self.points:
         point.mousedown = False
 def initalize(self):
     self.spd = 0.1
     self.wav = float(self.txt_wave.text)
     self.point1 = physics.point_source(radius=0.01,
                                        speed=0,
                                        wavelength=self.wav)
     self.point1.vel = physics.vector3(0.1, 0)
     self.points = [self.point1]
     for point in self.points:
         point.mousedown = False
    def timer_tick(self, **event_args):
        canvas = self.canvas
        self.cw = canvas.get_width()
        self.ch = canvas.get_height()
        cw = self.cw
        ch = self.ch
        dt = self.dt

        if self.first:
            self.xu = self.cw
            self.initalize()
            self.init_pos(self.points)

            self.spd_slider = draw.slider(self.can_slid,
                                          mini=0.1,
                                          maxi=3,
                                          stepsize=0.1,
                                          start=0.6,
                                          colour=self.default_colour_wave)
            self.spd_slider.indicator = True
            for point in self.points:
                point.vel.x = self.spd_slider.value * 0.1
            self.spd_slider.draw()
            self.draw_all()
            self.first = False

        if self.running:
            for point in self.points:
                point.move(dt)
                gap = int(float(self.wav) / (self.spd * dt))

                #point.radiate(dt)
                if int(float(self.t) / dt) % gap == 0:
                    new = physics.point_source(radius=0.0001,
                                               speed=self.spd,
                                               wavelength=self.wav)
                    new.pos = point.pos * 1

                    self.pulses.append(new)
            for point in self.pulses:
                point.radiate(dt)
            self.draw_all()

        self.t += self.dt
Exemplo n.º 6
0
    def canvas_mouse_up(self, x, y, button, **event_args):
    # This method is called when a mouse button is released on this component
        self.mouse.x = x/(self.xu*1.0)
        self.mouse.y = (self.ch-y)/(self.xu*1.0)

        for point in self.points:
            point.mousedown = False

        detect = False
        #if mouse is within a ball, record it
        for point in self.points:
            if (self.mouse - point.pos).mag()<point.radius:
                detect = True
                if self.moved <=2:
                    self.points.remove(point)
        if not detect:
            newpoint = physics.point_source(radius = 0.01, speed= self.spd, wavelength =self.wav)
            newpoint.pos = self.mouse*1.0
            self.points.append(newpoint)


        self.draw_all()
Exemplo n.º 7
0
    def canvas_mouse_up (self, x, y, button, **event_args):
    # This method is called when a mouse button is released on this component
        self.mouse.x = x/(self.xu*1.0)
        self.mouse.y = (self.ch-y)/(self.xu*1.0)

        for point in self.points:
            point.mousedown = False

        detect = False
        #if mouse is within a ball, record it
        for point in self.points:
            if (self.mouse - point.pos).mag()<point.radius:
                detect = True
                if self.moved <=2:
                    self.points.remove(point)
        if not detect:
            newpoint = physics.point_source(radius = 0.01, speed= self.spd, wavelength =self.wav)
            newpoint.pos = self.mouse*1.0
            self.points.append(newpoint)


        self.draw_all()
    def timer_tick (self, **event_args):
        canvas = self.canvas
        self.cw = canvas.get_width()
        self.ch = canvas.get_height()
        cw = self.cw
        ch = self.ch
        dt = self.dt

        if self.first:
            self.xu = self.cw
            self.initalize()
            self.init_pos(self.points)

            self.spd_slider = draw.slider(self.can_slid, mini= 0.1, maxi = 3, stepsize = 0.1, start=0.6, colour = self.default_colour_wave)
            self.spd_slider.indicator = True
            for point in self.points:
                point.vel.x = self.spd_slider.value*0.1
            self.spd_slider.draw()
            self.draw_all()
            self.first = False
            
        if self.running:
            for point in self.points:
                point.move(dt)
                gap = int(float(self.wav)/(self.spd*dt))

                #point.radiate(dt)
                if int(float(self.t)/dt) % gap ==0:
                    new = physics.point_source(radius = 0.0001, speed= self.spd, wavelength = self.wav)
                    new.pos = point.pos*1

                    self.pulses.append(new)
            for point in self.pulses:
                point.radiate(dt)
            self.draw_all()

        self.t += self.dt