2012-01-14 3 views
0

私は銀色のキャンバスを持っています。私がする必要があるのは、キャンバス内の空きスペースを見つけることです。これは、カバレッジのギャップを表します(これはポリシーのためのものです)。これを行う効率的な方法はありますか?私は子供のリストを保持し、そこに座標があり、私はまた、すべてがどこにあるかを記録している2つのデンタルグリッドを持っています。私は元々、このグリッドをループすることでこれを達成しましたが、すぐにグリッドの寸法が約800,1000であり、チェックするために私に1トンの座標を与えるので、これはうまく動作しないことがわかりました。silverlight canvasで空きスペースを見つけよう

(訂正:私はイメージがありましたが、明らかに私はそれを投稿するのに十分な評判ポイントを持っていないので、私の期待はかなり下がっています)

私が各子供のために保持する座標は、上、左、幅、高さです。私はキャンバスの境界も持っています。私は、これを行うためのどこかに誤りがなければならないと思っていますが、これまでの運はありません。

答えて

0

これはやってみると奇妙なことです。パフォーマンスを向上させたい場合は、キャンバスをWriteableBitmapにレンダリングしないでください。次に、画像の各ピクセルを繰り返して、色に基づいて空の領域であるかどうかを判断できます。 WriteableBitmapインターフェイスは少し基本的なので、WriteableBitmapEx codeplexプロジェクトが便利かもしれません。非常に単純な「get pixel at」メソッドを提供します。

+0

問題はレンダリングする前に実際に行う必要があることです。私が構築しているのは、一種のグラフです(ツリーマップはもっと複雑だと思います)。キャンバスはカバレッジ(つまり自動車負債)を表し、各ボックスはポリシーです。空白はカバレッジのギャップを表します。本当に私はそれのイメージを投稿することができたらいいと思う。 – user1149487

関連する問題