レンダリング用のJSライブラリであるGrafarをリリースしました

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バグについて文句を言うか(私は助けを防ぐことはできません)の開発に参加するように依頼することができます。





とにかく、おもしろいと思います。チャートで頑張ってください!








All Articles