求空間點到指定線段的垂點坐標-創(chuàng)新互聯

設空間線段的起點A和終點B分別為(a_1,b_1,c_1)\left ( a_2,b_2,c_2 \right ),線段AB外一點C(a,b,c),則C點到線段AB的垂點D的坐標求解過程如下:

創(chuàng)新互聯建站-專業(yè)網站定制、快速模板網站建設、高性價比龍山網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍山網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋龍山地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

因垂點D在線段AB上,則有向量關系\overrightarrow{AD}=k\overrightarrow{AB},由向量仿射知D點坐標可表示為\left ( a_1+k(a_2-a_1), b_1+k(b_2-b_1), c_1+k(c_2-c_1)\right )[式1]。

\overrightarrow{AB}=(a_2-a_1,b_2-b_1,c_2-c_1)

\overrightarrow{CD}=(a_1-a+k(a_2-a_1),b_1-b+k(b_2-b_1),c_1-c+k(c_2-c_1))

\overrightarrow{AB}\perp \overrightarrow{CD},則有

(a_1-a+k(a_2-a_1))\times (a_2-a_1)+(b_1-b+k(b_2-b_1))\times (b_2-b_1)+((c_1-c+k(c_2-c_1))\times (c_2-c_1)=0

整理得:

k=\frac{(a_2-a_1)(a-a_1)+(b_2-b_1)(b-b_1)+(c_2-c_1)(c-c_1)}{(a_2-a_1)^{2}+(b_2-b_1)^{2}+(c_2-c_1)^{2}}

求出k后,由[式1]可求出D點坐標。

0\leq k\leqslant 1時,垂點D在線段AB上,否則在線段AB外。

C++代碼如下:

#include "stdafx.h"
class CPoint
{
public:
	CPoint()
	{
		x = 0;
		y = 0;
		z = 0;
	}
	CPoint(double _x, double _y, double _z)
	{
		x = _x;
		y = _y;
		z = _z;
	}
	inline void operator = (const CPoint& p)
	{
		x = p.x;
		y = p.y;
		z = p.z;
	}
	static CPoint getPerpendicularPoint(CPoint start, CPoint end, CPoint pt, double& u)
	{
		CPoint ret;
		double dx = end.x - start.x;
		double dy = end.y - start.y;
		double dz = end.z - start.z;
		double k = (end.x - start.x)*(pt.x - start.x) + (end.y - start.y)*(pt.y - start.y) + (end.z - start.z)*(pt.z - start.z);
		k = k / (dx*dx + dy*dy + dz*dz);
		u = k;
		return CPoint(start.x + k*dx, start.y + k*dy, start.z + k*dz);
	}
public:
	double x;
	double y;
	double z;
};

int _tmain(int argc, _TCHAR* argv[])
{
	double u;
	CPoint x1 = CPoint::getPerpendicularPoint(CPoint(0, 0, 0), CPoint(0,0, 100),CPoint(30,20,30),u);
	return 0;
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

標題名稱:求空間點到指定線段的垂點坐標-創(chuàng)新互聯
URL網址:http://www.muchs.cn/article34/peese.html

成都網站建設公司_創(chuàng)新互聯,為您提供App設計、網站排名、Google商城網站、定制網站、服務器托管

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

手機網站建設