-2
我需要使用下面的方法查找最接近邊緣的點在PictureBox
void findclosestedges(Point p)
{
//Xedge=1 -- Left Edge is closer to Point 2--Right Edge
int Xedge,Yedge;
//Finding closest Left/Right Edge
if (p.X < (Width - p.X))
{
Xedge = 1;
LaunchOrigin2.closestedge.Text = " ";
LaunchOrigin2.closestedge.Text = LaunchOrigin2.closestedge.Text + " left";
}
else
{
Xedge = 2;
LaunchOrigin2.closestedge.Text = " ";
LaunchOrigin2.closestedge.Text = LaunchOrigin2.closestedge.Text + " right";
}
//Finding closest Top/Bottom Edge
if (p.Y < (Height - p.Y))
{
Yedge = 1;
LaunchOrigin2.closestedge.Text = LaunchOrigin2.closestedge.Text + " top";
}
else
{
Yedge = 2;
LaunchOrigin2.closestedge.Text = LaunchOrigin2.closestedge.Text + " bottom";
}
}
是我的方法正確找到picturebox.I'm內2個最接近邊緣的一個點?這種方法是否有任何警告?
請指教。
聽起來像你正在尋找代碼審查。如果是這樣,您可能需要在https://codereview.stackexchange.com上提問。 –
嗯,我不認爲它設置正確的問題。因爲我知道原來的問題,你實際上需要做的是在一個更大的矩形中找到一個矩形的對齊方式。由於內部矩形將包含不同長度和大小的文本,因此您需要比較delta_x_left = innerRect.X和delta_x_right = outer.Right - inner.Right。然後設置deltaDelta = delta_x_right - delta_x_left。如果deltaDelta> 0 - > rightAligned,則左對齊。你也可以測試math.abs(delatDelta)y someLimit來檢測一個居中的位置.. – TaW