在 Form1 我有这个代码:
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
label1.Visible = true;
label4.Visible = true;
if (wireObject1 != null)
float t = wireObject1.GetIndexByXY(e.X, e.Y, 5);
然后在 WireObject 类中我有这个功能:
public float GetIndexByXY( int x , int y , float tol)
{
for (idx = 0; idx < woc.Point_X.Count; idx++)//++idx)
{
float dx = woc.Point_X[idx] - x;
float dy = woc.Point_Y[idx] - y;
float dist = (float)Math.Sqrt(dx * dx + dy * dy);
if (dist < tol) return idx;
}
return -1;
}
idx 是在类顶部声明的浮点变量。对于这种情况下的示例:
woc.Point_X.Count 是 1 和索引列表我看到索引 [0] 是 435.0
x = 434 和 y = 233 tol = 5.0
计算后:dx = 1.0 和 dy = -2.0
最后 dist = 2.236068
idx 为 0
所以也许我不应该返回 idx ?并返回可能 dist ?
我搞砸了,我很长一段时间没有碰这个代码。我不记得它正在返回 idx 并且可能没有 dist 。