1

私は、ステージ上でマウスをドラッグすると点線を描画する描画ツールを作成しようとする任務を負っています。MouseEvent.MOUSE_MOVE のポイントを簡単にキャプチャしてベクターに保存し、ポイントをドットとして描画できます。

問題は、増え続けるポイントのベクトルで均等に分散されたポイントを計算する必要があるため、たとえば5番目のポイントごとに線を引くことしかできないことです(モジュラスを使用するとします)。私は二次方程式と三次方程式の両方でベジエ曲線方程式と戦ってきましたが、CPU から命を奪うことなく、ポイントのベクトルを均等に分散されたポイントのベクトルに変換する方法をまだ理解できません。

誰か助けて?George Profenza がスタック オーバーフローでこれに近づきました...George?

4

1 に答える 1

1

うーん、次のように試してみます。ポイントを調べて、あるポイントと次のポイントの間の距離を計算し、合計距離を追跡し、すでに配置したドットの数を追跡します。次に、ベクトルの次の各点について、新しい点と最後の点の間に配置する必要がある均等に分散されたドットの数を確認し、それらをベジエに描画して派手にしますが、直線はすでに均一である必要があります.

例: ベクトル内の 3 点、合計距離 22. 均等に分散されたドットあたりの距離: 5. したがって、これまでに画面に描画されたドット: 4. 新しいポイントから最後のポイントまでの距離は 7 で、合計距離は 29 になります。 Math.floor(29/5)=5)、あなたは 4 を持っているので、1 を描く必要があります。残りの距離 = 22 - 4*5 = 2.したがって、実行する距離 = 5-2 = 3.そして 3 / 距離新しい点と最後の点の間 (9) = 0.333 -> この点を、ベクトルの新しい点と最後の点の間の線の 1/3 に配置します。dot.x = seccondLastPoint.x + ((lastPoint.x - seccondLastPoint.x) * 0.333 のように。

それがあなたに望ましい結果をもたらすと確信しています。この記述からコードを構築できると思いますか?

于 2011-10-03T19:16:40.223 に答える