회선으로부터의 거리를 계산 중입니다. 그러나 나는 틀린 거리를 얻고있다. 다음은 줄에서 거리를 가져 오는 코드 조각입니다.회선으로부터의 거리가 작동하지 않는다
float px,py,something,u;
px=x2-x1;
py=y2-y1;
something = px*px + py*py;
u = ((x - x1) * px + (y - y1) * py) /(something);
if(u > 1)
{
u = 1;
// MinDist=0;
}
else if (u < 0)
{
u = 0;
//MinDist=0;
}
float xx = x1 + u * px;
float yy = y1 + u * py;
float dx = xx - x;
float dy = yy - y;
float dist= (float)Math.sqrt((double)dx*dx +(double) dy*dy);
Dist가 잘못 답하고 있습니다.
다음을 검토해 보시기 바랍니다 : http://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line#Vector_formulation – weston
거기에 사용할 수있는 알 고리가 있습니까? –
자세한 내용을 제공해 주시겠습니까? 정확히 무엇이 주어 졌는가? 선의 방정식이 주어 졌습니까? 어떤 형태로? 적절한 변수 이름을 사용하고, 주석을 제공하고, '무언가'와 같은 변수 이름을 사용하지 않는다면 도움이되었을 것입니다. – Vikram