CurveDirectManip

導入

v5.0

カテゴリ

モデリングの描画

詳細

カーブのポイント(アイソポイント)を操作して、ポイントの位置またはそのタンジェントのいずれかを制御します。

スクリプト構文

oReturn = CurveDirectManip( [SubComp], [ImmediateMode], [Mode], [X], [Y], [Z] );

戻り値

オペレータ オブジェクトの XSICollection

パラメータ

パラメータ タイプ 詳細
SubComp 文字列 カーブのアイソポイントであるコンポーネント

デフォルト値: 現在選択されている値

ImmediateMode siOperationMode オペレータを即座にフリーズするかどうかを指定します。

デフォルト値: siPersistentOperation

Mode siCurveIsopointManipMode 操作モード

デフォルト値: siCurveIsopointPositionManipMode

X ダブル オブジェクト フレームの X 軸方向の変位。

位置を変更する場合の新しいアイソポイントの位置は posX = posX + X となります。

タンジェントを変更する場合の新しいタンジェントは tangentX = tangentX + X となります。

デフォルト値: 0.000000

Y ダブル オブジェクト フレームの Y 軸方向の変位。

位置を変更する場合の新しいアイソポイントの位置は:posY = posY + Y

タンジェントを変更する場合の新しいタンジェントは:tangentY = tangentY + Y

デフォルト値: 0.000000

Z ダブル オブジェクト フレームの Z 軸方向の変位。

位置を変更する場合の新しいアイソポイントの位置は:posZ = posZ + Z

タンジェントを変更する場合の新しいタンジェントは:tangentZ = tangentZ + Z

デフォルト値: 0.000000

1. VBScript の例

' 
'       This example creates a m-shape cubic curve, converts the middle knot to Bezier, then controls
'       its position, its forward tangent and finally its backward tangent so the end result is 
'       a nice m shape consisting of two adjacent identical arcs.
' 
SICreateCurve "crvlist", 3, 0
SIAddPointOnCurveAtEnd "crvlist", -4.00195694716243, -2.00677710843373, 0, False, 0
SIAddPointOnCurveAtEnd "crvlist", -4.00195694716243, -9.78915662650515E-03, 0, False, 0
SIAddPointOnCurveAtEnd "crvlist", -2.00587084148728, 1.98719879518072, 0, False, 0
SIAddPointOnCurveAtEnd "crvlist", -9.78473581213335E-03, -2.00677710843373, 0, False, 0
SIAddPointOnCurveAtEnd "crvlist", 1.98630136986301, 1.98719879518072, 0, False, 0
SIAddPointOnCurveAtEnd "crvlist", 3.98238747553816, -9.78915662650581E-03, 0, False, 0
SIAddPointOnCurveAtEnd "crvlist", 3.98238747553816, -2.00677710843373, 0, False, 0
SetCurveKnotMultiplicity "crvlist.knot[2]", 3, siPersistentOperation
CurveDirectManip "crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointPositionAndTangentsManipMode, 1.66533453693773E-16, -1.33132530120482
CurveDirectManip "crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointFwdTangentManipMode, -1.99608610567515, 5.99096385542169
CurveDirectManip "crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointBwdTangentManipMode, 1.99608610567515, 5.99096385542169

2. JScript の例

/* 
        This example creates a m-shape cubic curve, converts the middle knot to Bezier, then controls
        its position, its forward tangent and finally its backward tangent so the end result is 
        a nice m shape consisting of two adjacent identical arcs.
*/ 
SICreateCurve("crvlist", 3, 0);
SIAddPointOnCurveAtEnd("crvlist", -4.00195694716243, -2.00677710843373, 0, false, 0, null);
SIAddPointOnCurveAtEnd("crvlist", -4.00195694716243, -9.78915662650515E-03, 0, false, 0, null);
SIAddPointOnCurveAtEnd("crvlist", -2.00587084148728, 1.98719879518072, 0, false, 0, null);
SIAddPointOnCurveAtEnd("crvlist", -9.78473581213335E-03, -2.00677710843373, 0, false, 0, null);
SIAddPointOnCurveAtEnd("crvlist", 1.98630136986301, 1.98719879518072, 0, false, 0, null);
SIAddPointOnCurveAtEnd("crvlist", 3.98238747553816, -9.78915662650581E-03, 0, false, 0, null);
SIAddPointOnCurveAtEnd("crvlist", 3.98238747553816, -2.00677710843373, 0, false, 0, null);
SetCurveKnotMultiplicity("crvlist.knot[2]", 3, siPersistentOperation);
CurveDirectManip("crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointPositionAndTangentsManipMode, 1.66533453693773E-16, -1.33132530120482, null);
CurveDirectManip("crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointFwdTangentManipMode, -1.99608610567515, 5.99096385542169, null);
CurveDirectManip("crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointBwdTangentManipMode, 1.99608610567515, 5.99096385542169, null);