VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/02/27(Fri) 22:18
投稿者おじん
URL
タイトル画面に正確な長さの線を引く

画面に正確な長さ(XY cm)の線を引く時、経験的にその長さX?は
Twips単位の場合、
X?=(1440/2.54)*XY*(800/Dx)     Dx は下記
Pixels単位の場合
X?=((1440/15)/2.54)*XY*(800/Dx)    
ただし、おじんのパソコンでは、15<=>TwipsPerPixelX(疑問1)、
2.54、1440は定義。800は経験則(疑問2)

コード例は、(ScaleMode を対応して)
With Line1
    .BorderWidth=5
    .x2=.x1+xy
End With

画面の大きさ S 例 15 inch
       Sx=15 * 4 / 5 画面の横の大きさ=12 inch=12 * 2.54 cm
              Sy=15 * 3 / 5 同上、縦の大きさ=9  inch
      ドット数 D 例 1024 x 768
       Dx=Screen.Width/Screen.TwipsPerPixelX=1024
      DPI(Dot Par Inch)=D / G

疑問1:
TwipsPerPixelsXはパソコン(モニタ)によって違うのでしょうか?
疑問2:
800は手持ちのノートパソコン(9インチ)でDxが800(x)だったものですから
それを代用して測って見たらニヤリイコールだったので。
これって、何ですか?、定数なのですか?

質問です。疑問1,2が解決すれば解決することなのですが、、、。
画面に「正確な長さ(大きさ)の線(画像)を描くには」どうすれば?
解決したのに、何故こだわるか、実はプリンタに同様の未解決の問題が
あるのです。プリンタの場合、DPI(上記)が今の知識では必要なのです。
そのためには「G=画面の大きさ」を、プリンタの場合はDPIをアプリから
取得する方法が知りたいのです。

疑問、質問が通じましたでしょうか、よろしくお願いいたします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -