c# - 选择许多向量和我的对象之间的最小角度
问题描述
我有一个vector3数组:
Vector3[]points
我将目标点位置存储在 Vector3 变量中:
Vector3 endPos
我需要在 Vector3 数组中获取与目标点的最小角度,并返回具有最小角度的 vector3 的索引。
我想了几个小时怎么做,但我真的不知道怎么做。我仍然是一个新人(请在 C# 中)。谢谢!
解决方案
您可以使用Vector3.Angle()
获取两者之间的角度Vector3
并迭代您的点并将最小度数及其索引存储在临时变量中。像这样的东西:
Vector3 endPos;
Vector3[] points;
private void SmallestAngle()
{
if(points.Length <2)
{
Debug.LogError("There should be more than two points!");
return;
}
float deg = float.PositiveInfinity;
int index = 0;
for (int i = 0; i < points.Length; i++)
{
float d = Vector3.Angle(points[i], endPos);
if (d < deg)
{
deg = d;
index = i;
}
}
Debug.Log($"Smallest angle = {deg} / Index = {index}");
}
推荐阅读
- android - onNewIntent() 在深度链接-Ionic-Android 上多次调用
- jmeter - 如何分析JMeter生成的堆转储文件
- python - 从 selenium 过滤返回的信息
- asp.net - ASP.NET Web API + async + EF6.2:关闭数据库连接前的长时间延迟
- matplotlib - 如何避免在具有多个系列的 3D 散点图中对颜色图数据进行归一化
- oracle - 在带有 Oracle 11g 64 位安装的 Windows 64 位服务器中安装 Oracle ODBC 32 位驱动程序
- javascript - 引导自动完成输入下拉菜单未显示
- django - 使用 postgres 在 AWS 上部署的 django 项目 - 如何创建数据库
- libreoffice - 在 Libreoffice Calc 中插入文件引用
- airflow - 气流:让另一个实例等到当前运行