高DPI対応に関して

投稿者:ゆうと 投稿日:2022/10/05(Wed) 18:07:59 No.2784

こんにちは。

キャンバスの図形サイズが実際と一致しない現象についてですが
すでにお返事のあるとおり、ディスプレイのスケール(DPI)によるものです。

端的に言うと、お使いのPCに応じたウィンドウの「設計スケール比率」設定項目を設定するか、
キャンバスの「倍率」設定項目を1とすることで、意図するサイズになるかと思います。

------
窓というウィンドウを作る
  その実質大きさを{400,400}に変える
窓を表示する

窓にキャンバス1というキャンバスを作る
  その位置は、{0,0}
  その大きさは、{300,300}
  その背景色を白色に変える
  その倍率を1に変える

キャンバス1へ四角形を描く
  その位置は、{0,0}
  その大きさは、{240,30}
  その背景色を黄色に変える
  キャンバス1を更新する
  
待機する
--------

プロデルでは、高DPIに対応しているため、
プログラムを作成した環境と、実行する環境とでディスプレイ倍率が違う場合でも、画面が崩れないように補正する機能があります。
ウィンドウでは、Windowsのディスプレイ設定の「拡大と縮小」で設定した倍率に応じて
サイズや座標が換算されます。

ディスプレイの倍率が100%の場合は問題ないのですが、最近のPCでは125%などに設定されていることが多いため、今回のような現象が起きることがあります。
プロデルデザイナの「ウィンドウの設計」画面で、部品を貼り付けた上でキャンバスに図形を描く方法をおすすめします。

windowsの設定の影響でした

投稿者:ten 投稿日:2022/10/04(Tue) 12:15:20 No.2779

にぽさん、ありがとうございました。

にぽさんの投稿を見て、突如「ひょっとして」と閃き、確認してみました。

Windowsのディスプレイ項目で、「拡大と縮小」部分、125%設定で普段使っているのを100%にしてみたところ、正しい表示になりました。

Windows側の設定が125%の場合は、設計スケール比率を{96,96}に変えることで、「想定通り」になった・・・(と思います)。ただ、このままでは、キャンバスの方に設計スケール比率を適用できない(やり方が分かっていないだけかも)せいか、完全には思うようにならないので、「ウィンドウを継承する」を使ったやり方をもう少し勉強して、そちらを使おうと思います。

ありがとうございました!

Re: 描画時のサイズについて

投稿者:にぽ 投稿日:2022/10/03(Mon) 22:31:33 No.2777

こんにちは。
同じコードで試してみましたが,再現しません。どのバージョンをお使いですか。

私の環境は以下の通りです。

◆動作環境情報◆
プロデル 1.8.1150
Windows 10(64)
メモリ:63.8 GB

描画時のサイズについて

投稿者:ten 投稿日:2022/10/02(Sun) 17:04:28 No.2774

お世話になります。描画系の機能を練習しているのですが、サイズの扱いが今一つ良く分からなくて・・・

下記サンプルですが、ウインドウ400×400に対し、300×300のキャンバスを作りました。この時、別途座標を取得して試したところでは、ここまでは、多分、想定通りのサイズになっています。

ところが、ここに四角を描画すると、サイズが「思っているのとは異なる」結果に。位置はいちばん左端からの描画で、サイズ指定は横幅240・・・なのに、キャンバスの横幅サイズ300の右端まで到達してしまいます。調整は可能なのですが、理由が分からないままに作るのは、危険だろう、ということで、質問に上がりました。どうかよろしくお願い致します。

----サンプル----
窓というウィンドウを作る
  その実質大きさを{400,400}に変える
窓を表示する

窓にキャンバス1というキャンバスを作る
  その位置は、{0,0}
  その大きさは、{300,300}
  その背景色を白色に変える

キャンバス1へ四角形を描く
  その位置は、{0,0}
  その大きさは、{240,30}
  その背景色を黄色に変える
  キャンバス1を更新する
  
待機する
----

▲ページの先頭へ

- WebForum -