Exemplo n.º 1
0
Arquivo: route.py Projeto: zx013/other
	def turn(self, rotate):
		angle = Geometry.standard(rotate - self.toward)
		if not angle:
			return
		direct = self.velocity if angle > 0 else -self.velocity #顺时针或逆时针的步长
		self.residual += abs(angle) #需要旋转的总长度

		start = self.toward
		while self.residual >= self.velocity: #还能再旋转一个时间片
			end = start + direct
			if (end - rotate) * direct > 0:
				end = rotate
			yield {'type': 'rotate', 'start': start, 'end': end}
			self.residual -= self.velocity
			start = end
		self.toward = rotate