Рефакторинг.
This commit is contained in:
@@ -7,7 +7,7 @@ extends Node
|
||||
func type_is_num(val) -> bool: return (typeof(val) == TYPE_INT) or (typeof(val) == typeof(0.0))
|
||||
|
||||
|
||||
## Производит преобразование из угла в радианы
|
||||
## Возвращае значение в радианах для угла в градусах [param val].
|
||||
func radians(val: float): return (val * PI) / 180.0
|
||||
|
||||
|
||||
@@ -24,7 +24,8 @@ func is_overlap(x1, x2, y1, y2): return max(x1, y1) <= min(x2, y2)
|
||||
|
||||
|
||||
## Производит преобразование из декартовой в полярную систему координат
|
||||
func pos_calc(freq: float, aoa: float, pos0: Vector2, r0: float, r1: float, f0: float, df: float):
|
||||
func pos_calc(freq: float, aoa: float, pos0: Vector2, r0: float, r1: float, f0: float, f1: float):
|
||||
var df = f1 - f0
|
||||
var r = ((freq - f0) / df) * r1 + r0
|
||||
var aoa_rad = Tools.radians(aoa) - PI / 2.0
|
||||
var x = cos(aoa_rad) * r + pos0.x
|
||||
@@ -72,9 +73,10 @@ func map_range(val: float, a0: float, a1: float, b0: float, b1: float) -> float:
|
||||
|
||||
## Возвращает true, если точка внутри заданного полигона
|
||||
func is_point_in_polygon(pos: Vector2, p: PackedVector2Array) -> bool:
|
||||
assert(len(p))
|
||||
var j: int = len(p) - 1
|
||||
var odd_nodes: int = 0
|
||||
for i in range(len(p)):
|
||||
for i in len(p):
|
||||
if ((p[i].y < pos.y and p[j].y >= pos.y or p[j].y < pos.y and p[i].y >= pos.y) and (p[i].x <= pos.x or p[j].x <= pos.x)):
|
||||
odd_nodes ^= int((p[i].x + (pos.y - p[i].y) / (p[j].y - p[i].y) * (p[j].x - p[i].x) < pos.x))
|
||||
j = i
|
||||
|
||||
Reference in New Issue
Block a user