私は電場の電場線を描くアルゴリズムを書いています。 2つ以上の電荷がある場合、線のほとんどが湾曲している。 StarlingにはdrawLine(x1,y1,x2,y2)
種類の機能がありません。電場線の最適化描画アルゴリズム
私は、線の小さなイメージを使用して、曲線を得るために画面上で繰り返し描画しています。すべてのフィールドラインが描画されると、画面上に何千もの小さなラインセグメントが描画されることがあります。彼らは同じテクスチャを持っているので、これは問題ではないはずですが、それでも良いアイデアかどうかは不明です。
私が考えているもう1つのテクニックは、まずフラッシュスプライトを作成し、その中にすべての線を描画し、それをビットマップ内に描画し、そのビットマップからテクスチャを作成することです。それでも、私はそれはすべてENTER_FRAME
イベントをこれを行う良いアイデアではないと思う。私は理解していれば
var s:flash.display.Sprite = new flash.display.Sprite();
//drawing inside sprite goes here
var bmd:BitmapData = new BitmapData(w, h, true, 0xffffff);
bmd.draw(s);
var texture:Texture = Texture.fromBitmapData(bmd);
var img:Image = new Image(texture);
addChild(img)
私はあなたがスプライト描画を使用する必要があると思います。ビットマップデータを各フレームに再割り当てしないでください。可能であれば、テクスチャを再利用してください。スプライトで良いことの1つは、 'graphics.curveTo()'と 'graphics.cubicCurveTo()'を使って直線でなくスプラインを描くことができるということです。実際の描画はプロセッサ上で簡単に行えます。 – Vesper
@Vesperユーザーは料金を移転し、リアルタイムでフィールドラインの変更を見たいので、同じテクスチャを使用できません。 –
ポイントは、より多くのオブジェクトが作成されるほど、アプリケーションが遅くなることです。あなたがテクスチャを補充することができない場合は、そうしてください。 – Vesper