私は、メイン画像上に2つのビットマップを別々にドラッグすることができるカスタムピクチャボックスコントロールを持っているので、ユーザーは2つのビットマップの場所を選択できます。2つのビットマップのオーバーラップ検出を実行する
最初のビットマップ
Point src = e.Location;
PointF ratio = new PointF((float)src.X/ClientSize.Width, (float)src.Y/ClientSize.Height);
LaunchOrigin.textratio = ratio;
Point origin = new Point((int)(backupbit1.Width * ratio.X), (int)(backupbit1.Height * ratio.Y));
LaunchOrigin.textorigin = origin;
point.X = src.X - origin.X;
point.Y = src.Y - origin.Y;
第二ビットマップのために
Point src = e.Location;
PointF ratio = new PointF((float)src.X/Width, (float)src.Y/Height);
LaunchOrigin.logoratio = ratio;
Point origin = new Point((int)(backupbit2.Width * ratio.X), (int)(backupbit2.Height * ratio.Y));
LaunchOrigin.logoorigin = origin;
point2.X = src.X - origin.X;
point2.Y = src.Y - origin.Y;
のためにこの場所では、適切に変換するフル解像度image.In順序を含むメインフォームに返されます2ポイント(2つのビットマップのうち)私は以下を行います。
Point origin = new Point((int)(bitmap.Width * textratio.X), (int)(bitmap.Height * textratio.Y));
Point pos2 = new Point((int)(textratio.X * img.Width), (int)(textratio.Y * img.Height));
cpoint.X = pos2.X - (int)(origin.X);
cpoint.Y = pos2.Y - (int)(origin.Y);
Point origin = new Point((int)(worktag.Width * logoratio.X), (int)(worktag.Height * logoratio.Y));
Point logopositionpoint = new Point((int)(logoratio.X * img.Width), (int)(logoratio.Y * img.Height));
imgpoint.X = logopositionpoint.X - origin.X;
imgpoint.Y = logopositionpoint.Y - origin.Y;
2つのビットマップは、互いに近くに配置し、フル解像度の画像は、ビットマップを配置するために使用される参照画像よりも高さが低いとなっているとき2ビットマップは離れlocations.Butに配置されたときにこれは非常にうまく動作これらの2つのビットマップは重なり合う。
私は何か間違っていますか?または、いくつかの重複検出を行う必要がありますか?
助けてください。
をチェックして、戻ってきますでいます。 – techno