mirror of
https://github.com/enzet/map-machine.git
synced 2025-05-23 22:16:25 +02:00
Issue #45: fix line intersection.
Use infinite lines to find intersection point.
This commit is contained in:
parent
edf75ff53c
commit
b15029a07e
2 changed files with 21 additions and 25 deletions
|
@ -21,10 +21,12 @@ def turn_by_angle(vector: np.array, angle: float):
|
|||
"""
|
||||
Turn vector by an angle.
|
||||
"""
|
||||
return np.array((
|
||||
vector[0] * np.cos(angle) - vector[1] * np.sin(angle),
|
||||
vector[0] * np.sin(angle) + vector[1] * np.cos(angle),
|
||||
))
|
||||
return np.array(
|
||||
(
|
||||
vector[0] * np.cos(angle) - vector[1] * np.sin(angle),
|
||||
vector[0] * np.sin(angle) + vector[1] * np.cos(angle),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def norm(vector: np.array) -> np.array:
|
||||
|
@ -44,7 +46,7 @@ class Line:
|
|||
# util.error("cannot create line by one point")
|
||||
self.a: float = start[1] - end[1]
|
||||
self.b: float = end[0] - start[0]
|
||||
self.c: float = start.x * end.y - end.x * start.y
|
||||
self.c: float = start[0] * end[1] - end[0] * start[1]
|
||||
|
||||
def parallel_shift(self, shift: np.array):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue