内容へ移動
RhinoとGrasshopperとPythonScriptのWiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
矢印の作成
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
RhinoScriptSyntax のAPIに矢印の形をしたオブジェクトを作成する機能はない\\ (CurveArrows は、曲線の描画スタイルを変更するもの) 次の関数を使用することで、円柱と円錐を組み合わせた立体的な矢印を生成できる <code python> # sp: 始点座標 # ep: 終点座標 # arrowHeadRatio: 線に対する先端円錐の高さの割合 # arrowHeadBaseR: 矢印先端円錐の底面半径 # arrowPipeR: 線の太さ半径 def makeArrow(sp, ep, arrowHeadRatio=0.3, arrowPipeR=5, arrowHeadBaseR=10): objs = [] arrowVec = rs.VectorSubtract(ep, sp) coneBasePoint = rs.VectorScale(arrowVec, 1.0 - arrowHeadRatio) coneBasePoint = rs.VectorAdd(sp, coneBasePoint) # make pipe arrowPipe = rs.AddCylinder(sp, coneBasePoint, arrowPipeR) objs.append(arrowPipe) # make head cone = rs.AddCone(coneBasePoint, ep, arrowHeadBaseR) objs.append(cone) return objs </code> ==== サンプルコード1 ==== 1本の矢印を生成 <code python> import rhinoscriptsyntax as rs a = [] def makeArrow(sp, ep, arrowHeadRatio=0.3, arrowPipeR=5, arrowHeadBaseR=10): objs = [] arrowVec = rs.VectorSubtract(ep, sp) coneBasePoint = rs.VectorScale(arrowVec, 1.0 - arrowHeadRatio) coneBasePoint = rs.VectorAdd(sp, coneBasePoint) # make pipe arrowPipe = rs.AddCylinder(sp, coneBasePoint, arrowPipeR) objs.append(arrowPipe) # make head cone = rs.AddCone(coneBasePoint, ep, arrowHeadBaseR) objs.append(cone) return objs a.extend(makeArrow([0,0,0], [100,100,100])) </code> 実行結果 {{:arrow.png?direct|}}
矢印の作成.txt
· 最終更新: 2023/01/26 11:46 by
jmitani
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ