0

誰か説明してくれませんか?

ピクセル間で描画できないのに、なぜ描画時に float または double 測定を使用する必要があるのですか? Oracle のドキュメントでは、プリンター デバイスについて何か書かれていますが、最小のポイント間をペイントすることもできません。わかりません。

簡単な線を言ってみましょう。この線の幅は 1.3f に設定されています。それが描かれているとき、それで何が起こっているのですか:

  1. ウィンドウに表示しますか (96 DPI だと思います)?
  2. 300 DPI のプリンター?

AFAIK Javaは内部で72 DPIを使用しています。それで、数学はどうですか?

4

1 に答える 1

0

いくつかのユースケースが思い浮かびます。

  • グラフィックデバイスがスケーリングされている可能性があります。たとえば、グラフィックスコンテキストの適切なスケーリングを使用して、単位円、つまり半径1の円のウィンドウいっぱいの画像を描画するいくつかのアプリケーションを知っています。
  • PDFファイルのようなベクトル指向のターゲットの出力を生成している可能性があります。その場合、ユーザーは任意にズームインし、高解像度でもかなりの量または精度を期待する可能性があります。
  • おっしゃるように、プリンタは画面よりもはるかに高い解像度で印刷する場合があります。これは、デフォルトの座標単位をデバイスのピクセルサイズの数倍にマッピングする組み込みのズーム係数によって実現されます。
  • アンチエイリアシングはサブピクセル解像度を提案します。幾何学的オブジェクトの境界で特定のピクセルに適用される色の量は、そのオブジェクトのサブピクセル座標に依存します。

上記のいずれも、単精度浮動小数点数を使用することを容易に除外することはできません。実際、ほとんどのG2D演算は、浮動小数点数を使用して使用できます。ダブルスの使用は、非常に大きなズーム、精度の点で非常に強い要求、および同様のアプリケーションでのみ重要です。しかし一方で、ほとんどの計算はどのような場合でもdoubleで実行され、これらをグラフィックスパイプラインを介して可能な限り実行するオーバーヘッドはほとんどの場合無視できます。だから、フロートの代わりにダブルを使う理由を私に尋ねるとき、私はあなたに「なぜそうしないのですか?」と尋ねます。</ p>

于 2012-12-11T22:25:12.100 に答える