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

投稿日: 2004/02/28(Sat) 09:21
投稿者おじん
URL
タイトルRe^2: 画面に正確な長さの線を引く

まず、投稿の内容に間違いがありました。訂正いたします。
>画面に正確な長さ(XY cm)の線を引く時、経験的にその長さX?は
>Twips単位の場合、
>X?=(1440/2.54)*XY*(800/Dx)    
>Dx=Screen.Width/Screen.TwipsPerPixelX=1024
>2.54、1440は定義。800は経験則(疑問2)
ここでもう一つのパソコンでやって見ると「正しい長さ」になりません
でした。経験則の「800」は正しくありません。削除訂正します。

>ScaleX、ScaleY メソッド で変換したのではだめですか?
2cmの長さの線を描きたいとした時、目測値はそれぞれ、
'Line1.X2 = Line1.X1 + (1440 / 2.54) * 2 '* 800 / 1024  <---2.2 cm
'Line1.X2 = Line1.X1 + Form1.ScaleX(20, 6, 1)           <---2.2 cm
'Line1.X2 = Line1.X1 + Screen.Width * 2 / (12 * 2.54)   <---2 cm
となりました。
ここで一番下の例の 12 は使用したパソコンの画面の大きさ15インチの
横方向の長さ 15 * (4/5) ==> 12 です。
長さは思うようになりましたが、1 inch = 1440 twips は絶対的長さでは
ないと仮定した考えによります。なにかおかしい気がします。
また使用モニタが何インチかまたは解像度を取得する方法を知りません。

>下記で印刷位置をmmで求めています。
>http://www.bcap.co.jp/hanafusa/VBHLP/pMargi.n.htm
今プリンタがつながっていないので改めてテストいたします。

>私のノートパソコンの環境ですが
>Picture1.ScaleX(10, 6, 1)  '10mm = 566.9286 twip
>Picture1.ScaleX(10, 6, 3)  '10mm = 37.79524 Pixels
今ここで使用しているパソコン(1024x768)では全く同じ値になりました。


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

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

- Web Forum -