Example #1
0
def circle(center, radius, color=None, width=0):
    points = []
    x, y = center
    angle, step = 0, math.pi / 18

    while angle < 2 * math.pi:
        dx, dy = (radius * math.sin(angle), radius * math.cos(angle))
        points.append((x + dx, y + dy))
        angle += step

    polygon(points, color, width)
Example #2
0
def circle(center, radius, color=None, width=0):
    points = []
    x, y = center
    angle, step = 0, math.pi/18

    while angle < 2*math.pi:
        dx, dy = (radius*math.sin(angle), radius*math.cos(angle))
        points.append((x+dx, y+dy))
        angle += step
    
    polygon(points, color, width)
Example #3
0
    def add_particle(self):
        a = self.particle_life < 0
        idxs = a.nonzero()
        idx = -1

        if len(idxs[0] > 0):
            idx = idxs[0][0]
        else:
            raise Exception('Non Empty Particle')

        self.particle_pos[idx][0] = self.origin[0] + self.pos_var[0] * rand()
        self.particle_pos[idx][1] = self.origin[1] + self.pos_var[1] * rand()

        self.particle_start_pos[idx][0] = self.origin[0]
        self.particle_start_pos[idx][1] = self.origin[1]

        a = math.radians(self.angle + self.angle_var * rand())
        v = Vector2(math.cos(a), math.sin(a))
        s = self.speed + self.speed_var * rand()

        dir = v * s

        self.particle_dir[idx][0] = dir[0]
        self.particle_dir[idx][1] = dir[1]

        self.particle_rad[
            idx] = self.radial_accel + self.radial_accel_var * rand()

        self.particle_tan[
            idx] = self.tangential_accel + self.tangential_accel_var * rand()

        life = self.particle_life[idx] = self.life + self.life_var * rand()

        sr = self.start_color[0] + self.start_color_var[0] * rand()
        sg = self.start_color[1] + self.start_color_var[1] * rand()
        sb = self.start_color[2] + self.start_color_var[2] * rand()
        sa = self.start_color[3] + self.start_color_var[3] * rand()

        self.particle_color[idx][0] = sr
        self.particle_color[idx][1] = sg
        self.particle_color[idx][2] = sb
        self.particle_color[idx][3] = sa

        er = self.end_color[0] + self.end_color_var[0] * rand()
        eg = self.end_color[1] + self.end_color_var[1] * rand()
        eb = self.end_color[2] + self.end_color_var[2] * rand()
        ea = self.end_color[3] + self.end_color_var[3] * rand()

        delta_color_r = (er - sr) / life
        delta_color_g = (eg - sg) / life
        delta_color_b = (eb - sb) / life
        delta_color_a = (ea - sa) / life

        self.particle_delta_color[idx][0] = delta_color_r
        self.particle_delta_color[idx][1] = delta_color_g
        self.particle_delta_color[idx][2] = delta_color_b
        self.particle_delta_color[idx][3] = delta_color_a

        self.particle_size[idx] = self.size + self.size_var * rand()

        self.particle_grav[idx][0] = self.gravity[0]
        self.particle_grav[idx][1] = self.gravity[1]

        self.particle_count += 1
Example #4
0
    def add_particle(self):
        a = self.particle_life < 0
        idxs = a.nonzero()
        idx = -1

        if len(idxs[0] > 0):
            idx = idxs[0][0]
        else:
            raise Exception('Non Empty Particle')

        self.particle_pos[idx][0] = self.origin[0] + self.pos_var[0]*rand()
        self.particle_pos[idx][1] = self.origin[1] + self.pos_var[1]*rand()

        self.particle_start_pos[idx][0] = self.origin[0]
        self.particle_start_pos[idx][1] = self.origin[1]

        a = math.radians(self.angle + self.angle_var*rand())
        v = Vector2(math.cos(a), math.sin(a))
        s = self.speed + self.speed_var*rand()

        dir = v*s

        self.particle_dir[idx][0] = dir[0]
        self.particle_dir[idx][1] = dir[1]

        self.particle_rad[idx] = self.radial_accel + self.radial_accel_var*rand()

        self.particle_tan[idx] = self.tangential_accel + self.tangential_accel_var*rand()
        
        life = self.particle_life[idx] = self.life + self.life_var * rand()

        sr = self.start_color[0] + self.start_color_var[0]*rand()
        sg = self.start_color[1] + self.start_color_var[1]*rand()
        sb = self.start_color[2] + self.start_color_var[2]*rand()
        sa = self.start_color[3] + self.start_color_var[3]*rand()

        self.particle_color[idx][0] = sr
        self.particle_color[idx][1] = sg
        self.particle_color[idx][2] = sb
        self.particle_color[idx][3] = sa

        er = self.end_color[0] + self.end_color_var[0]*rand()
        eg = self.end_color[1] + self.end_color_var[1]*rand()
        eb = self.end_color[2] + self.end_color_var[2]*rand()
        ea = self.end_color[3] + self.end_color_var[3]*rand()

        delta_color_r = (er-sr)/life
        delta_color_g = (eg-sg)/life
        delta_color_b = (eb-sb)/life
        delta_color_a = (ea-sa)/life

        self.particle_delta_color[idx][0] = delta_color_r
        self.particle_delta_color[idx][1] = delta_color_g
        self.particle_delta_color[idx][2] = delta_color_b
        self.particle_delta_color[idx][3] = delta_color_a

        self.particle_size[idx] = self.size + self.size_var*rand()

        self.particle_grav[idx][0] = self.gravity[0]
        self.particle_grav[idx][1] = self.gravity[1]

        self.particle_count += 1