矩陣和矢量的點乘推導及其簡單應用

推導

矩陣點乘

點乘的矩陣形式

  

 

實際應用

//求目標在主角的前方還是後方

//先求出來目標相對於主角的偏移矢量
v = target.position - transform.position;
//計算偏移和主角位置的點乘
d = Vector3.Dot(v, transform.position);
Debug.DrawLine(v,Vector3.zero);
Debug.DrawLine(Vector3.zero, transform.position);
if (d > 0)
{
	print("在前面");
}else if (d < 0)
{
	print("在後面");
}
else
{
	print("垂直");
}

-----------------------------------上面的應用有點錯誤,留作警醒----------------------------------下面正確解決方案

		//求目標在主角的前方還是後方
		
		//先求出來目標相對於主角的偏移矢量
		v = target.position - transform.position;
		//計算偏移和主角前方位置的點乘
		d = Vector3.Dot(v, transform.forward);
		Debug.DrawLine( transform.forward * 10, Vector3.zero);
		Debug.DrawLine(v, Vector3.zero);
		if (d < 0)
		{
			print("在後面");
		}else if (d > 0)
		{
			print("在前面");
		}
		else
		{
			print("垂直");
		}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章