initial commit
This commit is contained in:
30
path.py
Normal file
30
path.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from vec import Vec2
|
||||
|
||||
|
||||
class Path:
|
||||
def __init__(self, points: list[Vec2], extra_data: list):
|
||||
self.points: list[Vec2] = points
|
||||
self.extra_data = extra_data
|
||||
self.vecs: list[Vec2] = []
|
||||
self._init_vecs()
|
||||
|
||||
def _init_vecs(self) -> None:
|
||||
for i in range(1, len(self.points) - 1):
|
||||
pt1 = self.points[i-1]
|
||||
pt2 = self.points[i]
|
||||
pt3 = self.points[i+1]
|
||||
d1 = pt1 - pt2
|
||||
d2 = pt3 - pt2
|
||||
|
||||
l1 = d1.mag
|
||||
l2 = d2.mag
|
||||
|
||||
d1 = d1.normalized()
|
||||
d2 = d1.normalized()
|
||||
|
||||
d = d1 + d2
|
||||
d = d.normalized()
|
||||
if d2.cross(d) < 0:
|
||||
d = -d
|
||||
|
||||
self.vecs.append(d)
|
||||
Reference in New Issue
Block a user