(self, line: Line)
| 115 | return line.perpendicular_line(self) |
| 116 | |
| 117 | def foot(self, line: Line) -> Point: |
| 118 | if isinstance(line, Line): |
| 119 | l = line.perpendicular_line(self) |
| 120 | return line_line_intersection(l, line) |
| 121 | elif isinstance(line, Circle): |
| 122 | c, r = line.center, line.radius |
| 123 | return c + (self - c) * r / self.distance(c) |
| 124 | raise ValueError('Dropping foot to weird type {}'.format(type(line))) |
| 125 | |
| 126 | def parallel_line(self, line: Line) -> Line: |
| 127 | return line.parallel_line(self) |
no test coverage detected