(self, p: Union[Point, Line, Circle])
| 85 | return Point(0.5 * (self.x + p.x), 0.5 * (self.y + p.y)) |
| 86 | |
| 87 | def distance(self, p: Union[Point, Line, Circle]) -> float: |
| 88 | if isinstance(p, Line): |
| 89 | return p.distance(self) |
| 90 | if isinstance(p, Circle): |
| 91 | return abs(p.radius - self.distance(p.center)) |
| 92 | dx = self.x - p.x |
| 93 | dy = self.y - p.y |
| 94 | return np.sqrt(dx * dx + dy * dy) |
| 95 | |
| 96 | def distance2(self, p: Point) -> float: |
| 97 | if isinstance(p, Line): |