0

私の数学は非常にさびているに違いありません。既知のアルゴリズムを考え出す必要があります:

  • バツ
  • y
  • 身長

ドキュメント内の要素を別のハードウェア デバイスの同じ領域に変換します。たとえば、ドキュメントが印刷用に作成され (8.5 インチ x 11 インチのレター サイズと仮定します)、このドキュメント内の要素が専用の電子リーダーに転送されます。

また、電子書籍リーダーに関する既知の事実として、画面は 825x1200 ピクセルの縦長です。1 インチあたり 150 ピクセルあります。

印刷されたドキュメントのソース要素がポイント単位で与えられます (1 インチあたり 72 Postscript ポイント)。

これまでのところ、近いアルゴリズムがありますが、正確である必要があり、画像にアスペクト比を組み込む必要があると感じています。私が今していることは次のとおりです。

x (in pixels) = ( x(in points)/width(of document in points) ) * width(of ereader in pixels)

手がかりはありますか?

ありがとう!

4

2 に答える 2

1

次のように、操作の順序を元に戻して、整数の切り捨ての影響を減らすことができます。

x (in pixels) =  x(in points) * width(of ereader in pixels) / width(of document in points)

お使いの電子書籍リーダーのピクセルが正方形でないことを忘れていない限り、アスペクト比に問題があるとは思いません。その場合、デバイスの画面の水平方向と垂直方向で 1 インチあたりのピクセル数が異なるため、x には水平 ppi、y には垂直 ppi を使用します。

于 2012-05-10T15:33:38.847 に答える
0

座標が整数であると仮定すると、式x/widthは切り捨てられます (整数除算)。必要なのは、浮動小数点数で除算/乗算を実行してから切り捨てることです。何かのようなもの

(int)(((double)x)/width1*width2)

トリックを行う必要があります( and へのCのような変換をdouble使用int

于 2012-05-10T15:29:18.223 に答える