[Grasshopper]点からサーフェスの一番近い地点を取得するSurface Closest Point

[Grasshopper]点からサーフェスの一番近い地点を取得するSurface Closest Point Grasshopperコンポーネント

点からサーフェスの一番近い地点を取得する、Surface Closest Pointの使い方について解説します。

見え方1
見え方2

グラスホッパー上では上の2つのどちらかで表されます。


本記事では、コンポーネントはアイコン表示になっています。


点からサーフェスの一番近い地点を取得する

Surface Closest Pointを使うことで、点からサーフェスの一番近い地点を取得することができます。

ライノセラス上のサーフェス

今回は、上の画像のライノセラス上のサーフェスを使います。

点からサーフェスの一番近い地点を取得する

使用コンポーネント:①SurfaceBoxPopulate 3D ④Surface Closest Point

例として、ランダムな点を作成し、それらの点をサーフェスに反映させてみます。

サーフェスを格納

最初は、Surfaceに、ライノセラス上のサーフェスを格納します。

Box

その後、Surfaceを、Boxにつなげます。

すると、上の画像のように、サーフェスを囲うボックスが作成されます。

ランダムな点

その後、Boxを、Populate 3DのR端子につなげます。

さらに、Populate 3DのN端子に、点の数の数値を入力します。

今回は、20を入力しています。

すると、ボックスの中に、ランダムな点が20個作成されました。

サーフェスに一番近い地点に新たな点が作成される

その後、Populate 3Dを、Surface Closest PointのP端子につなげます。

また、Surfaceを、Surface Closest PointのS端子につなげます。

すると、周辺の点からサーフェスに一番近い地点に、新たな点が作成されました。

線を作成して確認

追加コンポーネント:①Line

元々の点と、新たに作成された点の間に線を作成して確認してみます。

Populate 3DとSurface Closest PointのP端子を、LineのAとB端子につなげます。

確認

すると、上の画像のように線が作成し、元々の点がサーフェスに一番近い地点に移動していることが分かります。

出力されるデータ

次に、出力されるデータを見てみましょう。

出力されるデータ

追加コンポーネント:①Point

Surface Closest PointのD端子からは、元々の点と新たに作成された点の間の距離の数値が出力されます。

P端子

Surface Closest PointのP端子からは、サーフェス上の点データが出力されます。

uvP端子

Surface Closest PointのuvP端子からは、サーフェスが平坦化された場合の点データが出力されます。

この場合、XとY軸から作成される作業平面上に、点データが作成されます。

このuvP端子は、サーフェスの情報を取得する際に、非常に重要になります。

サーフェスの情報を取得

追加コンポーネント:①Evaluate SurfaceCylinder

よく使われる例として、サーフェスの情報を取得するEvaluate Surfaceと組み合わせることがあります。

この場合、Surfaceを、Evaluate SurfaceのS端子につなげます。

そして、Surface Closest PointのuvP端子を、Evaluate Surfaceのuv端子につなげます。

すると、点データがあるサーフェス上の地点の、様々な情報を取得できます

例として、Evaluate SurfaceのF端子から出力される、作業平面のデータを使います。

Evaluate SurfaceのF端子を、CylinderのB端子につなげます。

CylinderのR端子に、半径の数値を入力します。

今回は、100を入力しています。

CylinderのL端子に、高さの数値を入力します。

今回は、300を入力しています。

サーフェス上の点のある地点を作業平面にできた

すると、サーフェス上の点のある地点を、作業平面にすることができました。

そのため、その地点のサーフェスの向きなどの情報を考慮し、円柱が配置されています。

Surface Closest Pointコンポーネントを使用しているグラスホッパー記事はこちら↓

コメント

Translate »
タイトルとURLをコピーしました