Ball (足球类)

class Ball(data_list)

基类:Sprite

球的功能与属性。 使用 opt.BALL 调用实例。

x

x 坐标

Type

float

y

y 坐标

Type

float

vx

x 方向速度

Type

float

vy

y 方向速度

Type

float

r

朝向的弧度信息,东方向为 0 度,南方向是 -π/2,西方向是 π,北方向为 π/2

Type

Radian

vr

角速度,弧度/秒

Type

Radian

Attributes Summary

angle

足球朝向角度,东方向为 0 度,南方向是 -90 度,西方向是 180 度,北方向为 90 度

radian

足球朝向弧度,东方向为 0 度,南方向是 -π/2,西方向是 π,北方向为 π/2

radian_velocity

足球角速度,单位为弧度/秒

radius

球的半径

Methods Summary

angle_to(x, y)

获取足球与某坐标 (x, y) 的角度

distance_to(x, y)

获取足球与某坐标 (x, y) 距离

is_tank_in_range(tank, r)

判断机器人是否在自己的 range 内

on_east_of(tank[, offset])

判断是否在选定机器人的东边

on_north_of(tank[, offset])

判断是否在选定机器人的北

on_south_of(tank[, offset])

判断是否在选定机器人的南边

on_west_of(tank[, offset])

判断是否在选定机器人的西边

radian_to(x, y)

获取足球与某坐标 (x, y) 的弧度

Attributes Documentation

angle

足球朝向角度,东方向为 0 度,南方向是 -90 度,西方向是 180 度,北方向为 90 度

返回

角度

返回类型

Angle

../_images/sprite_angle.png

实际案例

>>> import opt
>>> opt.BALL.r = 1.5707963267948966
>>> print(opt.BALL.angle)
90.0
radian

足球朝向弧度,东方向为 0 度,南方向是 -π/2,西方向是 π,北方向为 π/2

返回

弧度

返回类型

Radian

../_images/sprite_radian.png

实际案例

>>> import opt
>>> opt.BALL.r = 1.5707963267948966
>>> print(opt.BALL.radian)
1.5707963267948966
radian_velocity

足球角速度,单位为弧度/秒

返回

角速度

返回类型

Radian

../_images/sprite_radian_velocity.png

实际案例

>>> import opt
>>> opt.BALL.vr = 1.5
>>> print(opt.BALL.radian_velocity)
1.5
radius

球的半径

返回

返回类型

float

实际案例

>>> import opt
>>> print(opt.BALL.radius)
1.0

Methods Documentation

angle_to(x, y)

获取足球与某坐标 (x, y) 的角度

参数
  • x (float) – 目标 x 坐标

  • y (float) – 目标 y 坐标

返回

角度

返回类型

Angle

../_images/sprite_angle_to.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y, opt.BALL.r = 0, 0, 0
>>> print(opt.BALL.angle_to(-1, 0))
180.0
distance_to(x, y)

获取足球与某坐标 (x, y) 距离

参数
  • x (float) – 目标 x 坐标

  • y (float) – 目标 y 坐标

返回

距离

返回类型

float

../_images/sprite_distance_to.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y = 0, 0
>>> print(opt.BALL.distance_to(2, 0))
2.0
is_tank_in_range(tank, r)

判断机器人是否在自己的 range 内

参数
  • tank (Tank) – 机器人

  • r (float) – range 范围

返回

True/False

../_images/ball_is_tank_in_range.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y = 0, 0
>>> opt.TANK.x, opt.TANK.y = 1, 1
>>> print(opt.BALL.is_tank_in_range(opt.TANK, 2))
True
>>> print(opt.BALL.is_tank_in_range(opt.TANK, 1))
False
on_east_of(tank, offset=0)

判断是否在选定机器人的东边

参数
  • tank (Tank) – 选定机器人

  • offset (float) – 额外距离

返回

True/False

../_images/ball_on_east_of.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y = 0, 0
>>> opt.TANK.x, opt.TANK.y = 1, 0
>>> print(opt.BALL.on_east_of(opt.TANK))
False
on_north_of(tank, offset=0)

判断是否在选定机器人的北

参数
  • tank (Tank) – 选定机器人

  • offset (float) – 额外距离

返回

True/False

../_images/ball_on_north_of.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y = 0, 0
>>> opt.TANK.x, opt.TANK.y = 1, 0
>>> print(opt.BALL.on_north_of(opt.TANK))
False
on_south_of(tank, offset=0)

判断是否在选定机器人的南边

参数
  • tank (Tank) – 选定机器人

  • offset (float) – 额外距离

返回

True/False

../_images/ball_on_south_of.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y = 0, 0
>>> opt.TANK.x, opt.TANK.y = 1, 1
>>> print(opt.BALL.on_south_of(opt.TANK))
True
on_west_of(tank, offset=0)

判断是否在选定机器人的西边

参数
  • tank (Tank) – 选定机器人

  • offset (float) – 额外距离

返回

True/False

../_images/ball_on_west_of.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y = 0, 0
>>> opt.TANK.x, opt.TANK.y = 1, 0
>>> print(opt.BALL.on_west_of(opt.TANK))
True
>>> print(opt.BALL.on_west_of(opt.TANK, 2))
False
radian_to(x, y)

获取足球与某坐标 (x, y) 的弧度

参数
  • x (float) – 目标 x 坐标

  • y (float) – 目标 y 坐标

返回

弧度

返回类型

Radian

../_images/sprite_radian_to.png

实际案例

>>> import opt
>>> opt.BALL.x, opt.BALL.y, opt.BALL.r = 0, 0, 0
>>> print(opt.BALL.radian_to(-1, 0))
3.141592653589793