def random(cls, p=100, v=10): """Create a boid with a random motion.""" p = p * Vector.random() v = v * Vector.random() a = Vector.null() m = Motion(p, v, a) return cls(m)
def createRandomBody(): form=5*Form.random(n=5) form.side_color=mycolors.RED form.area_color=mycolors.BLACK form.fill=True motion=Motion(10*Vector.random(),Vector.random(),Vector.null()) moment=Motion(Vector([1]),Vector([0.1])) return Body(form,motion,moment)
def random(corners=[-1, -1, 1, 1], radius=random.uniform(0, 1), color=mycolors.WHITE): """Create a random material circle.""" p = Vector.random() v = Vector.random() a = Vector.random() m = Motion([p, v, a]) return MaterialCircle(m, radius, color)
def random(cls, na=5, sparse=1e10): """Create a random astre.""" c = "bcdfghjklmnpqrstvwxyz" v = "aeiou" def rd(n): return c[random.randint(0, len(c) - 1) ] if n % 2 == 0 else v[random.randint(0, len(v) - 1)] name = "".join([rd(i) for i in range(na)]) radius = random.uniform(0, 1) mass = random.uniform(1e20, 1e26) position = 1e12 * Vector.random() velocity = 1e6 * Vector.random() velocity.angle = (position.angle + math.pi / 2) % (2 * math.pi) acceleration = Vector.null() motion = Motion(position, velocity, acceleration) color = mycolors.random() return cls(name, radius, mass, motion, color)
def random(cls, n=2): """Create a random pendulum.""" angles = [Motion(math.pi*Vector.random(d=1), Vector.null(d=1), Vector.null(d=1)) for i in range(n)] lengths = [random.uniform(0, 1) for i in range(n)] masses = [random.uniform(0, 1) for i in range(n)] return cls(angles, lengths, masses)
def __init__(self,position,size=5): """Create an asteroid.""" form=size*Form.random(n=5) form.side_color=mycolors.RED form.area_color=mycolors.DARKGREY form.fill=True motion=Motion(Vector(*position),Vector.random(),Vector.null()) moment=Motion(Vector([0]),Vector([random.uniform(-1,1)])) super().__init__(form,motion,moment)
def __init__(self, n=10, s=5, g=10, radius_borns=[1, 10], **kwargs): super().__init__(**kwargs) # entities = [Entity(FormAnatomy.random(), # [Motion(s * Vector.random(), 10 * Vector.random(), Vector(0, -g)), # Moment(Vector.random(), 5*Vector.random())], friction=0) # for i in range(n)] self.group = Group(*[Entity(CircleAnatomy.random(radius_borns=radius_borns), \ [Motion(s*Vector.random(), Vector(0,0), Vector(0, -g))], friction=0.1) \ for i in range(n)]) self.collider = Collider(elasticity=0.9) self.born = s self.born_elasticity = 0.5 self.square = Square(0, 0, 2 * self.born) self.correctMasses()
def random(cls, n=3, d=2, borns=[-1, 1], **kwargs): """Create a random motion using optional minimum and maximum.""" vectors = [Vector.random(d=d, borns=borns, **kwargs) for i in range(n)] return cls(*vectors)
from myabstract import Vector v1 = Vector.random() v2 = Vector.random() v3 = Vector.null() print(v1, v2, v3) v3 -= v2 print(v1)
def random(corners=[-1, -1, 1, 1], n=3, d=2): """Create a random motion using optional minimum and maximum.""" return Motion([Vector.random(corners) for i in range(n)])
from myabstract import Form, Vector from mycontext import Context context = Context() f = Form.random() v = Vector.random() while context: context.check() context.control() context.clear() v *= 1.01 #f.move(v) f.show(context) context.flip()