図形の拡大縮小
メニューを表示するにはスワイプしてください
スケーリングは、図形の全体的な構造を保ちながら、その大きさを変化させる基本的な幾何学的変換です。図形にスケーリングを適用すると、各点は通常原点を基準とした特定の倍率で、固定点から近づいたり遠ざかったりします。この処理には、すべての次元が同じ倍率で拡大・縮小される一様スケーリングと、各次元が異なる倍率で拡大・縮小される非一様スケーリングがあります。
一様スケーリングでは、各点のすべての座標が同じ値で乗算されます。これにより図形の比率は保たれ、正方形は正方形のまま、円も円のまま大きくなったり小さくなったりします。非一様スケーリングでは、各座標軸ごとに異なるスケーリング係数を設定できます。例えば、長方形の高さを変えずに横方向だけを伸ばすことで、より幅広い長方形にすることができます。
スケーリング変換は、コンピュータグラフィックスやモデリング、デザインなどで、オブジェクトのサイズ変更や比率調整によく利用されます。図形をスケーリングすると、その面積や周囲長は予測可能な方法で変化します:一様スケーリングで倍率kの場合、周囲長はk倍、面積はk^2倍になります。ただし、非一様スケーリングでは図形が歪み、角度や辺の比率が変化することがあります。
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()
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 5
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 5