Untitled

mail@pastecode.io avatar
unknown
plain_text
7 days ago
1.5 kB
2
Indexable
Never
# Defining a new example of a line L: ax + by + c = 0
a, b, c = 2, -1, 3  # Line equation 2x - y + 3 = 0

# Point P(x0, y0) for general reflection
P0 = (4, 2)  # Example point

# Define the reflection formula using the generalized equation
def reflection(P0, a, b, c):
    x0, y0 = P0
    factor = 2 * (a * x0 + b * y0 + c) / (a**2 + b**2)
    x_prime = x0 - factor * a
    y_prime = y0 - factor * b
    return (x_prime, y_prime)

# Compute P'
P_prime_general = reflection(P0, a, b, c)

# Line L equation in terms of y = (ax + c)/-b
def L_general(x):
    return (a * x + c) / -b

# Generate x values
x_vals = np.linspace(-2, 8, 400)

# Create the plot
plt.figure(figsize=(8, 8))
plt.plot(x_vals, L_general(x_vals), label="Line L: $2x - y + 3 = 0$", color="blue")

# Plot points P and P'
plt.scatter(*P0, color="red", zorder=5, label="P(4, 2)")
plt.scatter(*P_prime_general, color="purple", zorder=5, label="P'(image of P)")

# Annotating the points
plt.text(P0[0] + 0.2, P0[1], 'P(4, 2)', color="red")
plt.text(P_prime_general[0] + 0.2, P_prime_general[1], "P'({:.2f}, {:.2f})".format(P_prime_general[0], P_prime_general[1]), color="purple")

# Setting labels and title
plt.axhline(0, color='black',linewidth=0.5)
plt.axvline(0, color='black',linewidth=0.5)
plt.xlabel('x')
plt.ylabel('y')
plt.title("Generalized Reflection of P(4, 2) over Line L: 2x - y + 3 = 0")
plt.grid(True)
plt.legend()
plt.axis('equal')

# Show the plot
plt.show()
Leave a Comment