Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Skalning av Former | Geometriska transformationer
Geometrisk Modellering med Python

Skalning av Former

Svep för att visa menyn

Skalning är en grundläggande geometrisk transformation som ändrar storleken på en figur samtidigt som dess övergripande struktur bevaras. När du applicerar skalning på en geometrisk figur flyttas varje punkt på figuren närmare eller längre bort från en fast punkt, vanligtvis origo, med en specifik faktor. Denna process kan vara uniform, där alla dimensioner skalas med samma faktor, eller icke-uniform, där olika dimensioner skalas med olika faktorer.

Vid uniform skalning multipliceras varje koordinat för varje punkt med samma värde. Detta gör att proportionerna för figuren förblir desamma, så en kvadrat förblir en kvadrat och en cirkel förblir en cirkel—bara större eller mindre. Vid icke-uniform skalning kan varje koordinataxel ha en egen skalningsfaktor. Till exempel kan du sträcka ut en rektangel horisontellt medan höjden förblir densamma, vilket gör den till en bredare rektangel.

Skalningstransformationer används ofta inom datorgrafik, modellering och design för att ändra storlek på objekt eller justera deras proportioner. När du skalar en figur förändras dess area och omkrets på förutsägbara sätt: vid uniform skalning med en faktor k multipliceras omkretsen med k och arean med k^2. Däremot kan icke-uniform skalning deformera figuren, vilket ändrar vinklar och relativa sidlängder.

12345678910111213141516171819202122232425262728
import 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()
question mark

Vilket av följande påståenden om skalningstransformationer är korrekt?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 2. Kapitel 5
some-alt