ミニスクリプト集MENUへ戻る

名称 ・・・・・・・

選択線型状の座標データ取得

ルーチン名 ・・・・・・・

GetVec3

スクリプトNo ・・・・・・・ sub- 004
file名 ・・・・・・・ script004.vbs(右クリックのコンテクストメニューでダウンロードできます。(windowsのみ)
修正(2003/05/26)UTF-8からANSIに統一。
概略 ・・・・・・・

選択している線形状の座標データを(配列を含むバリアント)変数に確保する。

使用前提 ・・・・・・・

線形状のアンカーポイントの数を予め確保しておくこと。
戻り値受け取り用に(配列ではなく)バリアント変数を宣言しておく。

依存関係 ・・・・・・・

特に無し

引数説明 ・・・・・・・

NA:線形状のアンカーポイントの数

戻り値説明 ・・・・・・・

3次元配列を含むバリアント変数を返す。
1次元   アンカーポイントの追番(0〜)
2次元   座標(0:x、1:y、2:z)
3次元   ポイントの種類(0:アンカーポイント、1:インハンドル、2:アウトハンドル)

変数説明 ・・・・・・・

Vec:線形状の座標データを確保する3次元配列配列
   1次元   アンカーポイントの追番(0〜)
   2次元   座標(0:x、1:y、2:z)
   3次元   ポイントの種類(0:アンカーポイント、1:インハンドル、2:アウトハンドル)
i,j:for nextのカウンター用

注意点 ・・・・・・・

座標データを使用するときの上限値にはXShade.NumberOfAnchorPointsで取得したポイント数を利用すること。UboundでもOK
(配列を含んだ)バリアントも使用例のように添え字で扱うことができます。

 
スクリプト
'---選択している線型状の座標データを取得する(3次元)
Function GetVec3(NA)
'Vecはアンカーポイントの座標データ
dim Vec(),i,j
Redim Vec(NA,2,2)
  for i=0 to NA-1
    for j=0 to 2
      Vec(i,j,0)=XShade.AnchorPoint(i,j)
      Vec(i,j,1)=XShade.InHandle(i,j)
      Vec(i,j,2)=XShade.OutHandle(i,j)
    next
  next
  GetVec3=Vec
End Function
使用例
call main()
sub main()
  dim Vec3,strTitle(2),i,j,k
  strTitle(0)="AnchorPoint"
  strTitle(1)="InHandle"
  strTitle(2)="OutHandle"
  PointNum=XShade.NumberOfAnchorPoints()
  Vec3=GetVec3(PointNum)
  XShade.message("----------strat-----------")
  for i=0 to PointNum-1
    XShade.message("■pointNo="&i)
    for k=0 to 2
      XSahde.message(strTitle(k)&"  x="&Vec3(i,0,k)&"  y="&_
                     Vec3(i,1,k)&"  z="&Vec3(i,1,k))
    next
  next
  XShade.message("-----------end------------")
end sub

ミニスクリプト集MENUへ戻る