返回介绍

Vector3.Dot 点乘

发布于 2019-12-18 15:38:43 字数 2107 浏览 927 评论 0 收藏 0

JavaScript => static function Dot(lhs: Vector3, rhs: Vector3): float;
C# => static float Dot(Vector3 lhs, Vector3 rhs);

Description 描述

Dot Product of two vectors.

两个向量的点乘积。

The dot product is a float value equal to the magnitudes of the two vectors multiplied together and then multiplied by the cosine of the angle between them.

点积是一个浮点型的值,两个向量的长度相乘,然后乘以它们之间夹角的余弦值。

For normalized vectors Dot returns 1 if they point in exactly the same direction; -1 if they point in completely opposite directions; and a number in between for other cases (e.g. Dot returns zero if vectors are perpendicular).

对于normalized向量,如果他们指向在完全相同的方向,Dot返回1。如果他们指向完全相反的方向,返回-1。对于其他的情况返回一个数(例如:如果是垂直的Dot返回0)。

JavaScript:

	// detects if other transform is behind this object	var other : Transform;
	function Update() {
		if (other) {
			var forward = transform.TransformDirection(Vector3.forward);
			var toOther = other.position - transform.position;
			if (Vector3.Dot(forward,toOther) < 0)
				print ("The other transform is behind me!");
		}
	}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public Transform other;
    void Update() {
        if (other) {
            Vector3 forward = transform.TransformDirection(Vector3.forward);
            Vector3 toOther = other.position - transform.position;
            if (Vector3.Dot(forward, toOther) < 0)
                print("The other transform is behind me!");
 
        }
    }
}

如果点乘的结果为0,那么这两个向量互相垂直;
如果结果大于0,那么这两个向量的夹角小于90度,方向基本相同;
如果结果小于0,那么这两个向量的夹角大于90度,方向基本相反。

点乘的结果就是两个向量的模相乘,然后再与这两个向量的夹角的余弦值相乘。或对应分量的乘积之和。
lhs.x*rhs.x+lhs.y*rhs.y+lhs.z*rhs.z 或者 |lhs|*|rhs|*COS(lhs,rhs)

Vector3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文