1

C# で Windows フォーム ベースのアプリケーションを開発しようとしています。フォームにはイメージ コントロールがあり、フロア プランのスキャン イメージがあります。実際の床のユーザーから x 座標と y 座標を取得し、画像の同じ場所に小さな円を正確に描きたいと考えています。これは、地図上のユーザーの位置を示しています。

問題は、現実世界の座標を画面のピクセルと同一視できないことです。したがって、調整のための式を取得する必要があります。調整の公式はありますか、それとも試行錯誤で行います。また、何らかの方法で変換を調整すると、現在の画面解像度に基づいて変換されます。任意の画面サイズで任意の解像度でアプリケーションを実行できるように、さまざまな画面解像度に対応する調整の公式はありますか。

4

1 に答える 1

1

私の理解では、座標の理解が不足しているという問題があります。現実の世界では、座標平面は 4 つの象限を形成する X 線と Y 線と考えられます。

コンピューターでは、第 1 象限でのみ作業します。つまり、origo (0,0) が左上隅になります。

頭の中でやりたくない場合は変換する

public int computerX(int realWorldX)
{
    return realWorldX+(int)(ImageControl.Width/2);
}

public int computerY(int realWorldY)
{
    int Convert = realWorldY+(int)(ImageControl.Height/2);
    int Flip = ImageControl.Height - Convert;
    return Flip;
}

実世界 (1,1) を配置したとき、見た目からプログラム内の他の座標を使用しました 25,25。乗算するだけでよいので、実世界 2,2 が必要な場合は、次のように 50,50 を記述します。

public int computerX(int realWorldX)
{
    return (realWorldX+(int)(ImageControl.Width/2))*yourXOffset;
}

public int computerY(int realWorldY)
{
    int Convert = realWorldY+(int)(ImageControl.Height/2);
    int Flip = ImageControl.Height - Convert;
    return Flip*yourYOffset;
}
于 2013-06-20T00:08:02.323 に答える