Ever wondered how people can say with 100% security where a circle intersects a line? No? Me too, but still I have decided to try to show how this is done.
With Python it looks like a piece of cake. Just to calculate the points, you need around 5 lines of code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import numpy as np import matplotlib.pyplot as plt from sympy import symbols, Eq, solve # Define symbols x, y = symbols('x y') # Define the equations line = Eq(x + y, 1) circle = Eq((x - 2)**2 + (y + 1)**2, 8) # Solve the system of equations solutions = solve((line, circle), (x, y)) print(solutions) # Print to verify |
And if you want to plot them beautifully, a bit more:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# Plot the circle theta = np.linspace(0, 2 * np.pi, 100) circle_x = 2 + np.sqrt(8) * np.cos(theta) circle_y = -1 + np.sqrt(8) * np.sin(theta) # Plot the line line_x = np.linspace(-2, 5, 100) line_y = 1 - line_x plt.figure(figsize=(8, 8)) plt.plot(circle_x, circle_y, label="Circle: $(x-2)^2 + (y+1)^2 = 8$") plt.plot(line_x, line_y, label="Line: $x + y = 1$") # Add intersection points for sol in solutions: plt.plot(sol[0], sol[1], 'ro', label=f'Intersection: ({sol[0]}, {sol[1]})') plt.axhline(0, color='black', linewidth=0.5) plt.axvline(0, color='black', linewidth=0.5) plt.grid() plt.legend() plt.title("Intersection of a Line and a Circle") plt.xlabel("x-axis") plt.ylabel("y-axis") plt.show() |
It is completely other idea, if you need to solve it with pen and paper. Anyway, I have tried to do it in the first 10 minutes of this video:
The pdf of the paper is here – Intersecting_Line_With_Circle.pdf.
Enjoy it!