名称 | ・・・・・・・ |
t=taの地点の座標の取得 |
|
ルーチン名 | ・・・・・・・ |
calcPos |
|
スクリプトNo | ・・・・・・・ | sub_set01- 001 | |
file名 | ・・・・・・・ | ScriptSet01.lzh sub_set01のページからセットごとダウンロードしてください。 |
|
概略 | ・・・・・・・ |
tパラメータ(=ta)から座標値のみを求める。 |
|
使用前提 | ・・・・・・・ |
線形状(べジェ曲線)を選択して適切な引数を指定してから実行する。 |
|
依存関係 | ・・・・・・・ |
GetnVec: |
ベジエ制御点P0〜P3の座標値の取得---sub_set01-012 |
引数説明 | ・・・・・・・ |
Vec3 : |
(in)座標データ(アンカーポイント番号、方向[x,y,z]、種類[アンカー,In,Out]) |
戻り値説明 | ・・・・・・・ |
tパラメータtaでの座標値。 |
|
変数説明 | ・・・・・・・ |
XYZ0(2)〜XYZ3(2) |
階差 |
注意点 | ・・・・・・・ |
引数taは0〜1の範囲で指定してください。戻り値は配列で戻るのでバリアント変数で受けて配列と同様に扱ってください。 |
|
スクリプト | |||
'-----------tパラメータから座標値(のみ)の計算 Function calcPos(Vec3,PtNo,ta) '階差とtパラメータ(=ta)から座標値のみを求める。 '戻値---tパラメータtaでの座標値 '引数--- ' Vec3 :(in)座標データ(アンカーポイント番号、座標軸方向[x,y,z]、ポイントの種類[アンカー,In,Out]) ' PtNo :(in)取り出す座標値のアンカーポイント番号(指定する) ' ta :(in)求めたいtパラメータ Dim XYZ0(2),XYZ1(2),XYZ2(2),XYZ3(2) '階差 Dim Pos(2) ':座標値用配列 Dim P ':3次のベジエ制御点P0〜P3の座標値 Dim j ':カウンタ用変数(xyz) P=GetnVec(Vec3,PtNo) Call kaisa(P,XYZ0,XYZ1,XYZ2,XYZ3) For j = 0 To 2 Pos(j) = XYZ3(j)*ta^3+3*XYZ2(j)*ta^2+3*XYZ1(j)*ta+XYZ0(j) Next calcPos=Pos End function |
|||
使用例 | |||
Dim NA,Vec3,PtNo Dim Vec3,NA,ta,PtNo,ta 'アンカーポイントの数を取得 NA=XShade.NumberOfAnchorPoints() 'アンカーポイントの座標値を取得 Vec3=GetVec3(NA) '--------------------ベジェ曲線でt=taの地点の座標を計算する。 ' (アンカーポイント番号PtNo〜PtNo+1の部分が対象) ta=0.32: PtNo=0 Pos=calcPos(Vec3,PtNo,ta) XShade.Message"x="&round(Pos(0)*1000)/1000&_ " y="&round(Pos(1)*1000)/1000&_ " z="&round(Pos(2)*1000)/1000("OKが押されました。") end sub |