cga.jsは、Javascriptで書かれた、コンピュテーショナル ジオメトリーの基本的なアルゴリズム集です。点の凸包や線の交点、三角測量、ポリゴンエクスパンションなどが含まれています。 ジョセフ・オルークのComputational Geometry in C に登場するアルゴリズムも多く含まれています。
ライブラリには点や線、形などの幾何学的特性を算出するための簡単な関数が含まれています。 次の例は、2次元での入れ子状の点の 凸包 の計算方法です:
// Given an array of points in cartesian coordinates [x,y]
var positions = [[x,y],[x,y],[x,y],...];
var cga = require('cga');
// This function will return a list of indices the represents the convex hull
var results = cga.convexHull2(positions);
次の例は、2次元での入れ子状の点から作られた簡単なポリゴンの 三角測量 の使用方法です:
// Given an array of points in cartesian coordinates [x,y]
var positions = [[x,y],[x,y],[x,y],...];
var cga = require('cga');
// This function will return a nested array of triangle vertex indices.
var results = cga.triangulatePolygon2(positions);
次の例は、2次元での入れ子状の点から作られた簡単なポリゴンの オフセット の使用方法です:
// Given an array of points in cartesian coordinates [x,y]
var positions = [[x,y],[x,y],[x,y],...];
var cga = require('cga');
// This function will return a nested array of triangle vertex indices.
var results = cga.expandPolygon(positions);
このライブラリは、コンピュテーショナル デザイン、及びパラメトリック デザインをウェブに広めようとする、大きなライブラリのプロジェクト/シリーズの一部です。 高度なコンピューテーショナル デザインや3Dモデルの出力、Gコード生成、CNCフライス加工ツール用のパスや、レーザー切断用のパスの生成、ロボット運動計画などを可能にする、全ての複雑な形態機能を備えた数学的頭脳になることを目的としています。
node.js (4.4.0+) & npm
このライブラリをプロジェクトに追加するためには、以下の操作を行って下さい:
npm install --save https://github.com/YCAMInterlab/cga.js.git
もしく以下の方法でも追加できます:
npm install --save cga
See https://github.com/rezaali/webgl-sketches/tree/master/hull
Copyright 2015-2016 Reza Ali co-developed by YCAMInterLab during the Guest Research Project v.3
Apache-2.0