2012-05-10 11 views
0

私の数学は非常に錆びている必要があります。文書内の要素の要素x、y、幅、高さ異なる寸法への翻訳

  • X
  • Y
  • 高さ

と同じにそれらを翻訳:私は知られているがかかりますアルゴリズムを思い付くする必要があります異なるハードウェアデバイス上の領域。たとえば、文書は印刷用に作成されています(8.5 "x11"の文字サイズを想定します)。この文書内の要素は、プロプライエタリeリーダーに転送されます。

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

Iポイント(インチ当たり72ポストスクリプト点)で印刷された文書からのソース・エレメントを与えています。

は、これまでのところ私はの近くに取得するアルゴリズムを持っているが、それは正確である必要があり、私は私が絵の中にアスペクト比を組み込むために必要な感覚を持っています。私が今やっていることは次のとおりです。

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

など

任意の手がかり?

ありがとうございます!

+0

通常、ピクセルの端数を使用することはできないため、正確には正しく表示されません。できることは、各ディメンションの最も近いピクセルに丸めることです。あなたの計算は現在どのくらい離れていますか? – mbeckish

答えて

0

仮定あなたの座標は、式x/widthは(整数除算)を切り捨てれる整数です。必要なのは、浮動小数点数で除算/乗算を実行することです。、次にを切り捨てます。あなたは次のように、整数切り捨ての影響を低減するために、あなたの操作の順序を元に戻したい場合があり

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

ような何か(doubleintにC-のような変換を使用して)トリックを行う必要があり

1

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

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

関連する問題