Refleksi#
Refleksi matriks (reflection matrix) adalah matriks transformasi yang mencerminkan (memantulkan) titik-titik dalam ruang terhadap sumbu, garis, bidang, atau titik tertentu.
Refleksi mengubah arah satu atau lebih komponen vektor, seperti bayangan di cermin.
✅ Repleksi pada 2D (dua dimensi):#
Refleksi terhadap sumbu-x:
→ Membalik titik terhadap sumbu-x (nilai y dibalik, x tetap).
Refleksi terhadap sumbu-y:
→ Membalik titik terhadap sumbu-y.
Refleksi terhadap garis y = x:
→ Menukar posisi x dan y.
✅ Repleksi pada 3D (tiga dimensi):#
Refleksi bisa dilakukan terhadap bidang seperti \(x=0\), \(y=0\), atau \(z=0\). Contoh refleksi terhadap bidang \(x=0\):
🔧 Aplikasi Refleksi Matriks:#
Grafika komputer (cermin objek)
Geometri transformasi
Simulasi fisika (pantulan)
📈 Penjelasan Gambar Refleksi Titik ( (4, 3) )#
🟥 Titik Asli#
Titik awal yang digunakan adalah:
🔵 Refleksi terhadap garis vertikal ( x = 2 )#
Menggunakan rumus:
Dengan ( a = 2 ) dan ( x = 4 ), maka:
Sehingga titik hasil refleksi adalah:
🟢 Refleksi terhadap garis horizontal ( y = 2 )#
Menggunakan rumus:
Dengan ( b = 2 ) dan ( y = 3 ), maka:
Sehingga titik hasil refleksi adalah:
🟣 Refleksi terhadap garis diagonal ( y = x )#
Rumusnya adalah menukar koordinat:
Maka:
import matplotlib.pyplot as plt
import numpy as np
# Titik awal
x0, y0 = 4, 3
# Cerminan terhadap x = 2
x_reflect_x2 = 2 * 2 - x0
y_reflect_x2 = y0
# Cerminan terhadap y = 2
x_reflect_y2 = x0
y_reflect_y2 = 2 * 2 - y0
# Cerminan terhadap y = x
x_reflect_y_eq_x = y0
y_reflect_y_eq_x = x0
# Membuat gambar
fig, ax = plt.subplots(figsize=(8, 8))
# Garis sumbu dan garis pantulan
ax.axhline(0, color='gray', linewidth=0.5)
ax.axvline(0, color='gray', linewidth=0.5)
ax.axvline(2, color='blue', linestyle='--', label='x = 2')
ax.axhline(2, color='green', linestyle='--', label='y = 2')
x_vals = np.linspace(0, 6, 100)
ax.plot(x_vals, x_vals, color='purple', linestyle='--', label='y = x')
# Titik-titik
ax.plot(x0, y0, 'ro', label=f'Titik asli ({x0}, {y0})')
ax.plot(x_reflect_x2, y_reflect_x2, 'bo', label=f'Cermin x=2 ({x_reflect_x2}, {y_reflect_x2})')
ax.plot(x_reflect_y2, y_reflect_y2, 'go', label=f'Cermin y=2 ({x_reflect_y2}, {y_reflect_y2})')
ax.plot(x_reflect_y_eq_x, y_reflect_y_eq_x, 'mo', label=f'Cermin y=x ({x_reflect_y_eq_x}, {y_reflect_y_eq_x})')
# Tambahan visual
ax.legend()
ax.grid(True)
ax.set_aspect('equal')
ax.set_xlim(0, 6)
ax.set_ylim(0, 6)
ax.set_title('Cerminan Titik terhadap x=2, y=2, dan y=x')
# Tampilkan gambar
plt.show()
