gpt4 book ai didi

c# - Vector3.Projection 是什么意思?

转载 作者:行者123 更新时间:2023-12-02 15:13:00 25 4
gpt4 key购买 nike

unity中的projection是什么意思?

我有以下代码,但我不知道它们的概念谁能帮助我并告诉我这些行是什么意思?

Vector3 normal = (end_line.position - start_line.position).normalized;
Vector3 pos = start_line.position + Vector3.Project (target.position-start_line.position,normal);

最佳答案

Vector3 normal = (end_line.position - start_line.position).normalized;

normal是线(矢量)的方向。它被归一化,使其大小等于 1。如果删除 .normalized部分它将代表线(矢量)本身。

让我们分解一下:

Vector3 pos = start_line.position 
+ Vector3.Project(target.position - start_line.position, normal);

target.position-start_line.position是另一个从 start_line 开始的向量结束于 target

Vector3.Project(target.position - start_line.position, normal)将此向量投影到 normal 上.

如果normal是从 (0,0,0) 开始的一条直线河流的方向, start_line.position是一条船在河上的位置并且target.position是用户希望船去的地方(可以在河外),那么得到的向量就是船沿河的运动。

如果您将该向量移动等于 start_line你会得到 pos = 船的最终位置。

还有 Vector3.ProjectOnPlane在 Unity 中,它可以被认为是转换到地面上的物体的阴影(通过平面的法线而不是矢量的法线)。

Vector3.Project到底是什么

p = Vector3.Project(a,n)

简单;多少向量a沿着n的方向绘制.

a是投影到 n 上的源向量.

n是归一化向量,它可以表示一个轴。 我不知道归一化向量 (0,1) 和非归一化向量 (0,2) 是否给出相同的结果。

p是通过投影 a 创建的向量到 n .

你总是可以假设 n从哪里开始 a开始于。自 n是一个轴,您可以假设它是一条无尽的线(从-inf 到+inf)。所以如果你移动an 上的零点轴(n 向量的起点)你会得到这样的东西:

enter image description here正常是 (0,1,0)

vector=a, onNormal=n, Projection=p

  • 如果a.normalized = n然后 p = a .
  • 如果a is perpendicular to n然后 p = Vector3.zero .
  • p.magnitude <= a.magnitude

关于c# - Vector3.Projection 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com