关于判鼠标是否选中直线 ( 积分: 100 )

  • 主题发起人 主题发起人 icegirl914
  • 开始时间 开始时间
I

icegirl914

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在做一个画图程序,用矢量图,但是碰到了一个问题,是关于判点跟直线的距离是否在有效范围内,我用了:

A = (float)y2 - y1;
B = (float)x1 - x2;
C = (float)(x2 * y1 - x1 * y2);

if (xx == ((B * yy + C) / A))
{
return 0;
}

d = (fabs(A * xx + B * yy + C)) / sqrt(A * A + B * B);
但返回的结果却有误差,明明点在线上,但是得到的值却很大,是我的算法有误吗???
 
我现在在做一个画图程序,用矢量图,但是碰到了一个问题,是关于判点跟直线的距离是否在有效范围内,我用了:

A = (float)y2 - y1;
B = (float)x1 - x2;
C = (float)(x2 * y1 - x1 * y2);

if (xx == ((B * yy + C) / A))
{
return 0;
}

d = (fabs(A * xx + B * yy + C)) / sqrt(A * A + B * B);
但返回的结果却有误差,明明点在线上,但是得到的值却很大,是我的算法有误吗???
 
A = (float)y2 - y1;
B = (float)x1 - x2;
C = (float)(x2 * y1 - x1 * y2);
不应在最后变类型,先变类型再算
 
应该是点到线段的距离吧?
分多种情况..
在两个端点,直线水平等....
 
后退
顶部