アルゴリズム

VEX

文字列を数値変換する

特定の文字列を数値変換する方法について。特定のIDが割り振られたポリラインを色別で視覚化する必要があったので調べました。アスキーコードを使って変換する文字のASCIIコードの値を合計する。string input = "ace57b5e";...
VEX

合計が1になるn個の乱数を返す

オブジェクトを並べる時に、最初と最後の位置は確定しているけど、途中はランダムに揺らぎのある配置にしたいような目的に使う関数。// 合計が1になるn個の乱数を返すfunction float[] randomArray(int num; fl...
Python

最短経路探索(勾配コスト)

A-Starアルゴリズムをベースに、勾配コストを追加したアルゴリズム。Input0にConvertline SOPでポリライン化した地形を、Input1に始点と終点を含むポリラインを差す。// RunOver: Detail// input...
VEX

バブルソート

昇順で並べ替えるint array[] = {3, 6, 1, 9, 7, 2};// バブルソート(昇順)for (int i = 0; i < len(array); i++) { for (int j = 0; j < len(arr...
VEX

配列に順位をつける

アトリビュートに順位をつけるアトリビュートに順位を割り振りたい場面で使うコード。//// アトリビュートの順位をつける//// Run Over:Detailfloat data[];int rank[];for(int i = 0; i ...
Polyline

Polylineのリダクション(Visvalingam-Whyattアルゴリズム)

面積を比較しながら削減していくのでスケールに依存しないという点で便利。処理の流れ両隣のポイントと成す三角形の面積を比較して、小さいものから順に削除していく。削除したら前後のポイントの三角形の面積を再計算する。三角形を視覚化したもの。コード初...
Polyline

Polylineのリダクション(Douglas-Peuckerアルゴリズム)

カーブを単純化するアルゴリズムです。処理の流れ1:始点と終点をプロット対象とする。2:プロット対象をラインで結び、その間の各点との距離を調べる3:許容距離以上で一番遠いポイントを選び、新たにプロット対象とする4:2~3の処理を再帰的に繰り返...
SOP

Polypath SOPのコード解説

Polypath SOPとはポリラインのトポロジーをクリーンアップし、重複したり分離しているカーブを一本に整理する便利なSOPです。Polypath SOPの中身。trace_edgesが肝の部分で、ここで新しくポリラインを生成している。直...
Polyline

点と多角形の内外判定(Winding-Numberアルゴリズム)

概要点が多角形に含まれているか否かはWinding Numberアルゴリズムを使って判定できる。多角形の各頂点を周回して得られる角度の合計が、もし内側にある場合は360度になり、外側の場合は0度になる。コード調べるポイントごとの処理。inp...
Python

最短経路探索(A-Starアルゴリズム)

ダイクストラ法との違いはヒューリスティックコストという推測値を利用して、ゴールに近いポイント順に処理をしていき、ゴールにたどり着いた時点で計算を止めるので、すべてを計算してしまうダイクストラに比べるとコストが低くなる。Input0にConv...
スポンサーリンク