目次
UI
今回は[nodes]を使用します。
準備
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-145.png)
オブジェクトを配置したらインスペクターを開いてください。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-148.png)
Nodes > Number of Nodesを「2」に、
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-150.png)
nodes > Node Sizesは「0. 0.」にします。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-151.png)
この2つのノードを使用し、距離と角度を出していきます。
ノードの座標を取得する
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-152.png)
[nodes]の第2アウトから[route node]と[route 1 2]で各ノードの情報を取り出せます。[route 1 2]のように1始まりなことに注意してください。
ノードの情報は「X Y サイズ アクティブかどうか」の形式で出力されます。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-153.png)
[route 1 2]から[unpack 0. 0.]で各ノードの座標のみを取得します。
ノード1から見たノード2の座標を求める
今回はノード1から見たノード2の座標を求めます。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-158.png)
各X,Yの距離を「ノード2 – ノード1」で計算すると、ノード1を(0,0)としたときのノード2の座標が求められます。
直交座標系を極座標系に変換する
X,Yで表せるような座標系を「直交座標系」と呼び、距離と角度で表せるようなものを「極座標系」と呼びます。Maxにはこの両者を変換する便利なオブジェクトがあります。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-157-594x1024.png)
[cartopol]を使用すると距離と角度を求められます。
通常のXY座標とMaxのUI座標はYの方向が逆のため、マイナス方向になっていることに注意してください。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-159.png)
ちなみに[poltocar]で直交座標に戻すことも可能です。
距離によってノードのサイズを変更する
ここからはおまけですが、[cartopol]を使用して距離を求められましたので、この数値を使ってノードのサイズを変更してみましょう。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-161.png)
「setsize ノード番号 サイズ」のメッセージをノードに送ると、指定したノードのサイズを変更できます。今回はノード1のサイズを変更したいので図のように作りましょう。
![](https://numeralcreation.info/wp-content/uploads/2019/11/image-162-703x1024.png)
[metro 100 @active 1]で定期的に情報を出力します。 (ちなみに[pack]ではなく[pak]を使用すると、ノードの情報がスタックしてしまいます。)
これでノード同士の距離に応じてノード1のサイズが変更されるようになりました。UIを操作して確かめてください。