Skalering av Former
Sveip for å vise menyen
Skalering er en grunnleggende geometrisk transformasjon som endrer størrelsen på en figur samtidig som dens overordnede struktur bevares. Når skalering brukes på en geometrisk figur, flyttes hvert punkt på figuren nærmere eller lenger fra et fast punkt, vanligvis origo, med en bestemt faktor. Denne prosessen kan være uniform, der alle dimensjoner skaleres med samme faktor, eller ikke-uniform, der ulike dimensjoner skaleres med forskjellige faktorer.
Ved uniform skalering multipliseres hver koordinat av hvert punkt med samme verdi. Dette holder proporsjonene til figuren uendret, slik at et kvadrat forblir et kvadrat, og en sirkel forblir en sirkel—bare større eller mindre. Ved ikke-uniform skalering kan hver koordinatakse ha en ulik skaleringsfaktor. For eksempel kan man strekke et rektangel horisontalt mens høyden forblir den samme, slik at det blir et bredere rektangel.
Skaleringstransformasjoner brukes ofte i datagrafikk, modellering og design for å endre størrelsen på objekter eller justere proporsjoner. Når en figur skaleres, endres arealet og omkretsen på forutsigbare måter: ved uniform skalering med faktor k multipliseres omkretsen med k, og arealet med k^2. Ikke-uniform skalering kan derimot forvrenge figuren, endre vinkler og relative sidelengder.
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()
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår