New*_*ker 2 c# unity-game-engine
投影在统一中是什么意思?
我有以下代码,但我不知道它们的概念,任何人都可以帮助我并告诉我这些行是什么意思?
Vector3 normal = (end_line.position - start_line.position).normalized;
Vector3 pos = start_line.position + Vector3.Project (target.position-start_line.position,normal);
Run Code Online (Sandbox Code Playgroud)
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视为地面(大概是在旋转世界),并且正午(12:00),则所得矢量就是您所看到的target.position-start_line.position由太阳引起的阴影并投射到地面上的阴影。
如果移动等于该矢量,start_line您将得到pos。
在 p = Vector3.Project(a,n)
只是; a沿方向绘制了多少矢量n。
a是要投影到的源向量n。
n是归一化的向量,它代表一个轴。我不知道标准化向量(0,1)和非标准化向量(0,2)是否给出相同的结果。
p是投影a到上创建的向量n。
您始终可以假定n从哪里a开始。由于n是轴,因此可以假定它是一条无限长的线(从-inf到+ inf)。因此,如果您移动a到n轴上的零点(n矢量的起点),您将得到以下内容:
向量= a,onNormal = n,投影= p
a.normalized = n话p = a。a is perpendicular to n话p = Vector3.zero。p.magnitude <= a.magnitude 由于相同的原因,阴影的长度不能大于中午的阴影源。在该图中,正常值为(0,1,0),但在这种情况下,您最好也使用(0,ay,0)代替项目。
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |