예제 #1
0
파일: regions.py 프로젝트: yuul/Scenic
	def uniformPointInner(self):
		x, y = self.center
		heading, angle, maxDist = self.heading, self.angle, self.radius
		r = random.triangular(0, maxDist, maxDist)
		ha = angle / 2.0
		t = random.uniform(-ha, ha) + (heading + (math.pi / 2))
		return Vector(x + (r * cos(t)), y + (r * sin(t)))
예제 #2
0
파일: regions.py 프로젝트: xqyd/Scenic
 def __init__(self, center, radius, heading, angle):
     super().__init__('Sector', center, radius, heading, angle)
     self.center = center.toVector()
     self.radius = radius
     self.heading = heading
     self.angle = angle
     r = (radius / 2) * cos(angle / 2)
     self.circumcircle = (self.center.offsetRadially(r, heading), r)
예제 #3
0
 def __init__(self,
              center,
              radius,
              heading,
              angle,
              resolution=32,
              name=None):
     self.center = center.toVector()
     self.radius = radius
     self.heading = heading
     self.angle = angle
     super().__init__(name, self.center, radius, heading, angle)
     r = (radius / 2) * cos(angle / 2)
     self.circumcircle = (self.center.offsetRadially(r, heading), r)
     self.resolution = resolution
예제 #4
0
	def __init__(self, center, radius, heading, angle, resolution=32):
		super().__init__('Sector', center, radius, heading, angle)
		self.center = center.toVector()
		self.radius = radius
		self.heading = heading
		self.angle = angle
		r = (radius / 2) * cos(angle / 2)
		self.circumcircle = (self.center.offsetRadially(r, heading), r)

		if not any(needsSampling(x) for x in (self.center, radius, heading, angle)):
			ctr = shapely.geometry.Point(self.center)
			circle = ctr.buffer(self.radius, resolution=resolution)
			if angle >= math.tau - 0.001:
				self.polygon = circle
			else:
				mask = shapely.geometry.Polygon([
				    self.center,
				    self.center.offsetRadially(radius, heading + angle/2),
				    self.center.offsetRadially(2*radius, heading),
				    self.center.offsetRadially(radius, heading - angle/2)
				])
				self.polygon = circle & mask
예제 #5
0
파일: regions.py 프로젝트: xqyd/Scenic
 def uniformPointInner(self):
     x, y = self.center
     r = random.triangular(0, self.radius, self.radius)
     t = random.uniform(-math.pi, math.pi)
     pt = Vector(x + (r * cos(t)), y + (r * sin(t)))
     return self.orient(pt)