0

今日は、doubleまたはfloatを使用して要素を配置することにより、画面上に大きなデータセットを視覚化する必要がありました。ピクセルを使用する場合、次のコードで長方形を描くことができます。

gimg.draw(new Rectangle2D.Double(1, 1, 50, 50));

しかし、次のコードで2つの長方形を描画しようとすると、問題が発生します。

gimg.setColor(Color.white);
gimg.draw(new Rectangle2D.Double(1.0, 1.0, 50, 50));
gimg.setColor(Color.gray);
gimg.draw(new Rectangle2D.Double(1.1, 1.1, 50.1, 50.1));

2つの長方形は互いに重なり合って描かれています。つまり、灰色の長方形が白い長方形の上に描かれているため、白と灰色の長方形は見えません。

0.1刻みで使用しています。少しテストした後、0.5の増分を使用すると、部分的な長方形を表示できるようです。ここでの問題は、位置が0.01だけ異なる長方形を表示する必要があることだけです。

ここで本当に重要な何かが欠けているのではないかと思います。誰かが私に援助の手を差し伸べることができますか?

4

2 に答える 2

4

ピクセルは精度/見栄えを損なうことなく10分の1(またはその分数)に分割できないため、代わりに0.1:1スケールの使用を検討する必要があります。画面上の小さなピクセルを想像してみてください。1pxの線を10個の識別可能なセクションに分割しようとしています。残念ながら、それは不可能です。

于 2012-08-27T19:45:01.163 に答える
1

ピクセルを分数に「分割」することはできませんが、2ピクセルにまたがる「ぼやけた」線で長方形を描くことはできます。(残念ながら、現在使用しているコードよりも複雑なコードが必要になります。)ただし、この場合は、一歩下がって、使用しているデータの特性や種類を考える必要があると思います。つまり、人々にそのデータから引き出してもらいたいということです。

画面上にマイクロメートルの精度で長方形を配置できたとしても、この長方形はその長方形より0.0001mm右にあるため、ユーザーはデータの背後にある意味をよりよく識別できません。

おそらく、画面上のさまざまな場所に配置された長方形よりも優れた視覚化を見つける必要があります。たぶん、データのいくつかの側面を伝えるために、さまざまな色または色の強度を利用することができます。あなたが何をしているのかを正確に知らずに、より具体的なことを言うことは不可能です。

于 2012-08-27T19:54:34.447 に答える