meshgeom オブジェクトまたは sfmesh オブジェクトを、X 軸、Y 軸、Z 軸それぞれに独立したスケーリング係数でスケーリングします。
構文
meshgeom ST_Scale(meshgeom geom, float XFactor, float YFactor, float ZFactor);
sfmesh ST_Scale(sfmesh sfmeshObject, float XFactor, float YFactor, float ZFactor);パラメーター
| パラメーター | 説明 |
|---|---|
geom | スケーリングする meshgeom オブジェクト。 |
sfmeshObject | スケーリングする sfmesh オブジェクト。 |
XFactor | X 軸のスケーリング係数。 |
YFactor | Y 軸のスケーリング係数。 |
ZFactor | Z 軸のスケーリング係数。 |
仕組み
各座標は、対応するスケーリング係数を乗算されます。
x' = XFactor * x
y' = YFactor * y
z' = ZFactor * z例
meshgeom オブジェクトを、X 軸方向に 0.5、Y 軸方向に 0.8、Z 軸方向に 2.0 でスケーリングします。
SELECT ST_asText(
ST_Scale(
'MESHGEOM(PATCH(INDEXSURFACE(VERTEX(0 0,0 10,10 10,10 0), INDEX((0,1,2),(1,2,3)))))'::meshgeom,
0.5, 0.8, 2.0
)
);結果:
MESHGEOM(PATCH(INDEXSURFACE(VERTEX(0 0,0 8,5 8,5 0),INDEX((0,1,2),(1,2,3)))))X 座標は半分になり(10 → 5)、Y 座標は 0.8 倍になります(10 → 8)。この例では頂点座標が 2 次元であるため、Z 軸の係数は目に見える効果を持ちません。