Система пикселей в том, что это зависит от вашего разрешения экрана.
Ну, во-первых, вы должны получить dpi (плотность пикселей на дюйм) вашего экрана.
Например, ваш экран dpi 96;
1 см = 37,795276F пикселей в 96 точек на дюйм.
37,795276F / 96F = 0,03937007F, то есть каждый пиксель в 1dpi.
Теперь вы можете сделать его адаптированным к вашему экрану, получив текущее разрешение экрана и умножив его на 0,03937007F. тогда у вас есть каждый сантиметр по вашему желанию dpi (разрешение экрана)
позволяет установить сценарий.
Я хочу создать метод, который получает CM и возвращает базу пикселей на экране Dpi;
public float CentimeterToPixel(int valueCM, float dpi)
{
return 0.03937007F * dpi * valueCM;
}
Если вы хотите сделать его более точным, вам нужно приблизиться к dpiX и dpiY.
например, в C # winforms. Вы можете добавить объект Graphics из
System.Drawing И System.Drawing.Drawing2D затем получите значение dpiX & dpiY и спроектируйте свою область на основе этого, чтобы иметь более точный расчет (в некоторых случаях горизонтальное разрешение отличается от вертикального ).
Смотрите код ниже.
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace MyApp
{
static class MyAppClass
{
private static Bitmap bmp = new Bitmap(1, 1);// a simple bitmap that automaticaly created base on current screen resolution
private static Graphics graphic = Graphics.FromImage(bmp);
public static float CentimeterToPixelWidth(int valueCM)
{
return 0.03937007F * graphic.DpiX * valueCM;
}
public static float CentimeterToPixelHeight(int valueCM)
{
return 0.03937007F * graphic.DpiY * valueCM;
}
}
}
Желаю тебе, Гейдар.