grafar(レンダリング用のライブラリ)を開きました。コードのほとんどは私の論文のために2013年から2016年に書かれました。次の5年間、プロジェクトはテーブルの上に置かれました-私はAPIにあまり満足していませんでした、追加できるクールな機能がたくさんあり、作業が無駄になり、まだリリースしない理由がたくさんありました、 ええと。結局のところ、世界には私より賢い人がたくさんいて、彼らは間違いなくもっと良いものを思い付くでしょう?
先週、githubでほこりを集めるこの美しいコードに再び出くわしました。それでもかっこいいと思い、誰かの時間を大幅に節約できると確信しています。そこで、プロジェクトにワールドクラスのドキュメントを提供し、ビルドを更新して、誇大広告モードを開始しました。
正直なところ、これはグラファーの最初の公開リリースです。おそらくバグがあり、APIの完全な安定性を永遠に約束することはできません。しかし、それでも、グラフに注意を払う必要があると確信しています。その理由は次のとおりです。
シンプルなAPI。たった10行のコードで、ブラウザで表面を構築できました。APIは、数学オブジェクト(曲線、サーフェス、ポイント)の操作を対象としており、独創的なオブジェクトトポロジモデルを使用して、すべてが期待どおりに機能するようにします。
. -, , , , — 1 30FPS. WebGL , .
c 3D 2D. ThreeJS, 3D — , . 2D, .
. Grafar — (- MobX). , , .
, , . codesandbox.
— . :
const p = grafar.range(-2, 2, 500).select();
const q = grafar.range(0, 1, 2).select();
([-2, 2] p, [0, 1] q) , .
(x,y,z):
const xp = grafar.map([p, q], (p, q) => Math.cos(8 * p) * q);
const yp = grafar.map([p, q], (p, q) => Math.sin(8 * p) * q);
. -, , p q — , . -, xp yp — p q, xp yp .
, — :
const container = document.getElementById("app");
const panel = grafar.panel(container);
grafar.pin([xp, yp, p], panel);
7 :
, — , grafar. :
. , , . — , .
ライブラリに興味がある場合は、ドキュメントを確認してください(これまでのところ英語のみ)。完全なライブラリのコードが利用可能であるにgithubの。でishyusバグについて文句を言うか(私は助けを防ぐことはできません)の開発に参加するように依頼することができます。
とにかく、おもしろいと思います。チャートで頑張ってください!