Skalierung von Formen
Swipe um das Menü anzuzeigen
Skalierung ist eine grundlegende geometrische Transformation, die die Größe einer Form verändert, während ihre Gesamtstruktur erhalten bleibt. Bei der Anwendung der Skalierung auf eine geometrische Figur bewegt sich jeder Punkt der Form näher zu oder weiter von einem festen Punkt, meist dem Ursprung, um einen bestimmten Faktor. Dieser Prozess kann uniform sein, wobei alle Dimensionen mit demselben Faktor skaliert werden, oder nicht-uniform, wobei verschiedene Dimensionen mit unterschiedlichen Faktoren skaliert werden.
Bei der uniformen Skalierung wird jede Koordinate jedes Punktes mit demselben Wert multipliziert. Dadurch bleiben die Proportionen der Form erhalten, sodass ein Quadrat ein Quadrat und ein Kreis ein Kreis bleibt – nur größer oder kleiner. Bei der nicht-uniformen Skalierung kann jede Koordinatenachse einen anderen Skalierungsfaktor haben. Beispielsweise kann ein Rechteck horizontal gestreckt werden, während seine Höhe gleich bleibt, wodurch es zu einem breiteren Rechteck wird.
Skalierungstransformationen werden häufig in der Computergrafik, beim Modellieren und im Design verwendet, um Objekte zu vergrößern oder ihre Proportionen anzupassen. Wenn eine Form skaliert wird, ändern sich Fläche und Umfang auf vorhersehbare Weise: Bei einer uniformen Skalierung mit dem Faktor k wird der Umfang mit k multipliziert und die Fläche mit k^2. Nicht-uniforme Skalierung kann jedoch die Form verzerren, indem Winkel und relative Seitenlängen verändert werden.
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()
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen