資源簡介
這個計算點到線段最短距離算法是先計算線段上距離點最近的點,然后求出 2 點距離。在計算用戶到當前位置到某條公路的最短距離等實際情況中,可以先用這個算法,然后根據結果坐標使用 CLLocation 類的函數計算實際距離 VC6工程
代碼片段和文件信息
//?distance.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?
#include?
typedef?struct?tagPoint
{
double?x;
double?y;
}POINT;
typedef?struct?tagLine
{
POINT?p1;
POINT?p2;
}LINE;
double?distance(?POINT&?pt?LINE&?line)
{
double?x1?y1?x2?y2?x3?y3;????
????double?px?=?line.p2.x?-?line.p1.x;
????double?py?=?line.p2.y?-?line.p1.y;
????double?som?=?px?*?px?+?py?*?py;
????double?u?=??((pt.x?-?line.p1.x)?*?px?+?(pt.y?-?line.p1.y)?*?py)?/?som;
????if?(u?>?1)?{
????????u?=?1;
????}
????if?(u?0)?{
????????u?=?0;
????}
????//the?closest?point
????double?x?=?line.p1.x?+?u?*?px;
????double?y?=?line.p1.y?+?u?*?py;
????double?dx?=?x?-?pt.x;
????double?dy?=?y?-?pt.y;??????
????double?dist?=?sqrt(dx*dx?+?dy*dy);
return?dist;
}
int?main(int?argc?char*?argv[])
{
POINT?pt;
pt.x?=?0;
pt.y?=?0;
LINE?line;
line.p1.x?=?100;
line.p1.y?=?-100;
line.p2.x?=?100;
line.p
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1087??2013-04-09?17:22??distance.cpp
?????文件???????4560??2013-04-09?17:11??distance.dsp
?????文件????????539??2013-04-09?17:11??distance.dsw
?????文件??????33792??2013-04-09?17:22??distance.ncb
?????文件??????48640??2013-04-09?17:22??distance.opt
?????文件????????250??2013-04-09?17:22??distance.plg
?????文件???????1220??2013-04-09?17:11??ReadMe.txt
?????文件????????295??2013-04-09?17:11??StdAfx.cpp
?????文件????????769??2013-04-09?17:11??StdAfx.h
?????文件?????229428??2013-04-09?17:21??Debug\distance.exe
?????文件?????258196??2013-04-09?17:21??Debug\distance.ilk
?????文件???????6298??2013-04-09?17:21??Debug\distance.obj
?????文件?????213872??2013-04-09?17:11??Debug\distance.pch
?????文件?????525312??2013-04-09?17:21??Debug\distance.pdb
?????文件???????1884??2013-04-09?17:11??Debug\StdAfx.obj
?????文件??????50176??2013-04-09?17:22??Debug\vc60.idb
?????文件??????69632??2013-04-09?17:21??Debug\vc60.pdb
?????目錄??????????0??2013-04-09?17:21??Debug
-----------?---------??----------?-----??----
??????????????1445950????????????????????18
評論
共有 條評論