2

私のブラウザ内LEDDisplayオブジェクトには、そのプロパティLEDに格納されているオブジェクトがありmapます。それぞれLEDにプロパティがxありy、キャンバス上のどこにあるかを知ることができます。一方、は、マトリックス上にそれらをマップするsのmap2D配列(さまざまなサイズにすることができます)です。表示オブジェクトには、LEDの領域とLED間のスペースを定義するプロパティもあります。LEDDisplay

ディスプレイには、あらかじめ作成されたフォントの数字や文字などの文字を表示できる必要があります。

私が頭を悩ませることができないのは、文字を表示するための最良の方法は何ですか?たとえば、文字「S」がどのように見えるかの例を次に示します(.LEDディスプレイがオフになってOいる場合、LEDディスプレイがオンになっている場合:

..OO..
.OOOO.
OO..OO
OO....
.OO...
..OO..
...OO.
OO.OO.
.OOO..
..OO..

どのLEDをオンにするかをどのようにマッピングする必要がありますか?

私の現在の解決策はCharacter、プロパティxy(ディスプレイマトリックス上の位置を決定する)とwidthheight(LED内の領域を決定する)を持つオブジェクトを作成することです。次に、オンになっているはずのLEDが2Dアレイにマッピングされます。文字を表示する必要がある場合は、Character「s」xと「」を取得しy、「source」LEDを見つけて、LEDマップされたとおりにsをオンにします。

もっと良い方法はありますか?パスを使用しているのではないでしょうか。

4

2 に答える 2

1

あなたの説明からあなたがそれをどのようにやっているのか完全にはわかりませんが、あなたが何を求めていると思うかに基づいて、これが私がそれをどのように行うかです。

最初のステップでは、LEDをオンまたはオフにする必要があるポイントを定義する配列ですべての文字を処理します。これが大きなセットになる場合は、データを圧縮するためのいくつかの手法を試すことができます。

キャンバス上のLEDのサイズに応じて、変更が必要なLEDを計算する関数を作成し、変更が必要なLEDがある場所でのみディスプレイをワイプします。openGLのディスプレイリストのように、LED(オンとオフの状態)を1回事前にレンダリングします(以下のリンクを参照)。

それ以外の場合、文字自体が画面上で非常に小さく、文字がたくさんある場合は、各文字全体を事前にレンダリングして、フォントのように使用します。これには、画面をさらにクリアする必要がありますが、数百のLEDがある場合、計算と表示のクリアのオーバーヘッドが高くなる可能性があります。

このページには、効率的なキャンバスレンダリングに関するいくつかの良い情報があります: http ://www.html5rocks.com/en/tutorials/canvas/performance/

LEDはプログラムでレンダリングされ、単なる画像ではないと思いますか?それらが単なる画像である場合は、すでにLEDを効果的に事前レンダリングしています。

于 2012-04-25T21:21:36.393 に答える
1

私が理解したことから、あなたは「ピクセル化された」LEDディスプレイを作ろうとしています。したがって、基本的に、文字をピクセルの配列として格納することが、それらを定義するための最良の方法のように思われます...私はあなたの問題が何であるかを実際にはわかりません。

問題がピクセルマップの取得に関するものである場合、フォントのようなピクセルを取得し、オフスクリーンキャンバスに文字を描画し、ピクセルデータを取得し、それらを使用して文字のピクセルマップを作成することができます。次に、ループを実行して、すべてのマップを自分で作成しなくても、すべてのキャラクターをマップできます...

于 2012-04-25T21:30:51.643 に答える