この式を使用してピクセル単位の距離がある場合:
sqrt((x1-x2).^2+.(y1-y2)^2))
どうやってCMに変換できますか?
'ScreenPixelsPerInch'プロパティを呼び出します。
dpix=sqrt((x1-x2)^2+(y1-y2)^2); %# calculate distance in pixels
pixperinch=get(0,'ScreenPixelsPerInch'); %# find resolution of your display
dinch=dpix/pixperinch; %# convert to inches from pixels
dcm=dinch*2.54; %# convert to cm from inches
または、ワンライナーアプローチの場合:
dcm=sqrt((x1-x2)^2+(y1-y2)^2))/get(0,'ScreenPixelsPerInch')*2.54;
編集:システムが画面サイズとdpiを正しく取得しているかどうかを確認することをお勧めします。モニターのサイズとアスペクト比、および解像度がわかっている場合、これは簡単に実行できます。たとえば、私の設定:
1920x1080pのワイドスクリーン16:923"モニター
h^2+w^2=23^2 and h/w=9/16
与える
h=11.28 and w=20.05 inches
get(0,'Screensize')
戻り値[1 1 1920 1080]
とget(0,'ScreenPixelsPerInch')
戻ります96
だから1920/20.05 = 95.76
そして1080/11.28 = 95.74
運が良かったかもしれませんが、この方法でうまくいきました。
アプリケーションの「ピクセル」とは何ですか?
画面のピクセルを意味する場合は、他の回答を見てください。画像のピクセルを意味する場合は、画像の物理的なサイズ (高さ、幅) を知る必要があり、ピクセルの幅を計算できます。
たとえば、画像が 10x10 cm で 512x512 ピクセルの場合、1 ピクセルは幅 10/512 cm です。10/512 にピクセル単位の距離を掛けると、センチメートル単位の距離が得られます。
そのようなピクセルがレンダリングされるデバイスの DPI (または一般的には解像度) がわからない場合、ピクセルを cm に変換することはできません。
デバイスの DPI があると仮定すると、単純にピクセル / DPI * 2.54 を実行できます。
<考える>
px cm in cm cm
px : ---- * ---- = px * ---- * ---- = in * ---- = cm
in in px in in
...わかりました、単位は正しいです:) </thinking>
ピクセルと CM は別の尺度です。ピクセルは環境に依存します。コンピュータの画面にはさまざまな解像度とサイズがあります。たとえば、私の画面では 100px は約 2.7cm です。状況はどうなっていますか?