点から線の一番近い地点に点を作成する、Curve Closest Pointの使い方について解説します。


グラスホッパー上では上の2つのどちらかで表されます。
点から線の一番近い地点に点を作成する
Curve Closest Pointを使うことで、点から線の一番近い地点に点を作成することができます。

使用コンポーネント:①Rectangle ②Populate 2D ③Curve ④Curve Closest Point
今回は例として、ランダムに作成した点を、曲線の一番近い地点に点を作成していきます。

今回は、こちらのライノセラス上の曲線を使います。

最初に、RectangleのXとY端子に、1辺の長さの数値を入力します。
今回は、どちらにも1000の数値を入力しています。
すると、1000×1000の正方形の線データが作成されました。

その後、Curveに、ライノセラス上の曲線を格納します。

その後、Rectangleを、Populate 2DのR端子につなげます。
そして、Populate 2DのN端子に、作成したい点の個数の数値を入力します。
今回は、10を入力しています。
すると、正方形の線データの内側に、ランダムな点が10個作成されました。

その後、Populate 2DのP端子を、Curve Closest PointのP端子につなげます。
さらに、Curveを、Curve Closest PointのC端子につなげます。
すると、上の画像のように、点から線の一番近い地点に点が作成されました。

追加コンポーネント:①Line
点の移動を可視化してみます。
Populate 2DとCurve Closest Pointの右側のP端子を、Lineにつなげます。

すると、点を結ぶ線が作成されました。
上の画像のように、点が移動しているのが分かります。
Curve Closest Pointから出力されるデータ
Curve Closest Pointから出力されるデータを見てみます。

追加コンポーネント:①Point
Curve Closest Pointの右側のP端子からは、点データが出力されます。
Curve Closest PointのD端子からは、移動前と後の点と点の間の距離の数値が出力されます。

t端子からは、曲線上のどの位置に点があるかの情報が出力されます。
例として、その情報を使い、線を点がある位置で分割してみます。
Curve Closest Pointのt端子を、Shatterのt端子につなげます。
すると、点の位置で曲線が分割されました。
今回は、9個の線に分割されています。

1つの線だけ選択してみます。
List Itemのi端子に、0の数値を入力します。
すると、分割された1番最初の線のみを取得できました。
このように、Curve Closest Pointのt端子からは、曲線上のどの位置に点があるかの情報が出力されます。
Curve Closest Pointコンポーネントを使用しているグラスホッパー記事はこちら↓
Comment