数週間以内に開始しなければならないプロジェクトの情報を集めています。このプロジェクトには、ユーザーが定義済みの図形を追加したり、自分で図形を形成したりできるブラウザー ベースの描画ツールが含まれています。シェイプは選択可能で、自由に拡大縮小でき、Illustrator のような変換ツール (ハンドル) で回転できる必要があります。念頭に置いている定義済みの形状は、長方形、楕円、半楕円、(二等辺三角形) です。
これまでのところ、これを達成するには、RaphaelJS または FabricJS を考えていましたが... すべての形状 (ポリゴン/パス) は、特定のコーナー半径で描画する必要があります。また、スケーリング中にコーナー半径を維持する必要があるため、歪みは発生しません。ユーザーは、入力によって丸めを指定できます。
いくつかの障害/質問があります:
- 私が言及した形状にコーナー半径を適用するための統一された数式はありますか? それとも、すべての形状をミニプロジェクト自体として扱う必要がありますか? パスやポリゴンで返したいので、SVGでもキャンバスでも描けます。
- トランスフォームハンドルをドラッグすることによるすべてのスケールまたは回転操作は、更新された形状を取得するために(大規模な)計算を行うと思います。長方形は達成するのが最も簡単で、楕円を除いて、他のすべての形状は計算がはるかに難しくなります。プロセスをスピードアップする方法はありますか?
ユーザーがフローチャートを描画し、提供されているほぼすべての形状にコーナー半径を適用できるサイトを見つけました。それはとてもスムーズに機能するので、私は彼らがどのようにそれをしたかを釘付けにすることはできません. リンク: https://www.lucidchart.com/ (試すボタン)
今のところ、私は少し無知で、数学は平凡だと思います。おそらく、誰かが私を正しい方向に押し進めて、いくつかの経験を共有することができますか?
前もって感謝します。
ところで。このプロジェクトではパフォーマンスが重要です。図面の出力は SVG 形式である必要があります。