現在、「Douglas Peucker」アルゴリズムを使用しています。
私の問題は、私が描いているときに、以前に描いた線も変化しており、もちろん現実的ではないことです。保存されたポイントを最小化するが、以前に描画されたポイントを変更しない、または必要に応じて「Douglas Peucker」を変更する他の方法はありませんか?
現在、「Douglas Peucker」アルゴリズムを使用しています。
私の問題は、私が描いているときに、以前に描いた線も変化しており、もちろん現実的ではないことです。保存されたポイントを最小化するが、以前に描画されたポイントを変更しない、または必要に応じて「Douglas Peucker」を変更する他の方法はありませんか?
鉛筆画ツールに 2 つのオプションの描画方法を指定します。
mousemove (現在のフリーフォーム メソッド) を使用して、パス上に新しい点を描画します。このオプションを使用すると、ユーザーは多くの点を追加して、図面を非常に詳細にすることができます。
マウスダウン時にのみ、パス上に新しいポイントを描画します。このオプションは、パス上の前のポイントを新しくクリックしたポイントに接続するだけです。このオプションを使用すると、非常に直線的な線を数本追加するだけで、長い直線エッジで図形の輪郭を描くことができます。
ユーザーが描画している間にフリーフォーム パスが変化することが懸念される場合は、ユーザーがマウスの移動を 1 秒間停止した後に単純化アルゴリズムを 1 回だけ適用できます。
Douglas-Peucker アルゴリズムが精度のために高いバイアスを使用するように指定すると、単純化されたパスは単純化されていないパスに対して非常に忠実なままになります。
ところで、ポイントを通るスプラインを描きたい場合は、この素敵な以前の投稿をチェックしてください: How to draw Smooth Curve through N points using javascript HTML5 canvas?