Schalen van Vormen
Veeg om het menu te tonen
Schalen is een fundamentele geometrische transformatie die de grootte van een vorm verandert, terwijl de algehele structuur behouden blijft. Wanneer je schalen toepast op een geometrische figuur, beweegt elk punt van de vorm dichter naar of verder van een vast punt, meestal het oorsprong, met een specifieke factor. Dit proces kan uniform zijn, waarbij alle dimensies met dezelfde factor worden geschaald, of niet-uniform, waarbij verschillende dimensies met verschillende factoren worden geschaald.
Bij uniform schalen wordt elke coördinaat van elk punt met dezelfde waarde vermenigvuldigd. Hierdoor blijven de verhoudingen van de vorm gelijk, zodat een vierkant een vierkant blijft en een cirkel een cirkel—alleen groter of kleiner. Bij niet-uniform schalen kan elke coördinaatas een andere schaalfactor hebben. Je kunt bijvoorbeeld een rechthoek horizontaal uitrekken terwijl de hoogte gelijk blijft, waardoor het een bredere rechthoek wordt.
Schaaltransformaties worden veel gebruikt in computergraphics, modellering en ontwerp om objecten van formaat te veranderen of hun verhoudingen aan te passen. Wanneer je een vorm schaalt, veranderen het oppervlak en de omtrek op voorspelbare manieren: bij uniform schalen met factor k wordt de omtrek vermenigvuldigd met k en het oppervlak met k^2. Niet-uniform schalen kan echter de vorm vervormen, waardoor hoeken en relatieve zijden veranderen.
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()
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.