Skalering af Former
Stryg for at vise menuen
Skalering er en grundlæggende geometrisk transformation, der ændrer størrelsen på en figur, mens dens overordnede struktur bevares. Når du anvender skalering på en geometrisk figur, bevæger hvert punkt på figuren sig tættere på eller længere væk fra et fast punkt, som oftest er origo, med en bestemt faktor. Denne proces kan være uniform, hvor alle dimensioner skaleres med samme faktor, eller ikke-uniform, hvor forskellige dimensioner skaleres med forskellige faktorer.
Ved uniform skalering multipliceres hver koordinat for hvert punkt med den samme værdi. Dette bevarer figurens proportioner, så en firkant forbliver en firkant, og en cirkel forbliver en cirkel—bare større eller mindre. Ved ikke-uniform skalering kan hver koordinatakse have en forskellig skaleringsfaktor. For eksempel kan man strække et rektangel horisontalt, mens højden forbliver den samme, hvilket gør det til et bredere rektangel.
Skaleringstransformationer bruges ofte i computer grafik, modellering og design til at ændre størrelsen på objekter eller justere deres proportioner. Når du skalerer en figur, ændres dens areal og omkreds på forudsigelige måder: ved uniform skalering med en faktor k multipliceres omkredsen med k, og arealet med k^2. Dog kan ikke-uniform skalering forvride figuren, så vinkler og relative sidelængder ændres.
12345678910111213141516171819202122232425262728import numpy as np import matplotlib.pyplot as plt def scale_polygon(vertices, scale_x, scale_y): scale_matrix = np.array([[scale_x, 0], [0, scale_y]]) return vertices @ scale_matrix.T # Define a triangle triangle = np.array([[1, 1], [3, 1], [2, 3], [1, 1]]) # Uniform scaling by factor 2 scaled_uniform = scale_polygon(triangle, 2, 2) # Non-uniform scaling: x by 2, y by 0.5 scaled_nonuniform = scale_polygon(triangle, 2, 0.5) # Plot original and scaled triangles plt.figure(figsize=(6, 6)) plt.plot(triangle[:,0], triangle[:,1], 'o-', label='Original') plt.plot(scaled_uniform[:,0], scaled_uniform[:,1], 'o-', label='Uniform scale (2x)') plt.plot(scaled_nonuniform[:,0], scaled_nonuniform[:,1], 'o-', label='Non-uniform scale (2x, 0.5y)') plt.legend() plt.axis('equal') plt.title('Scaling Transformations of a Triangle') plt.xlabel('X') plt.ylabel('Y') plt.show()
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat