Unity判断线和平面的交点
//线和平面的交点 private Vector3 GetIntersectWithLineAndPlane(Vector3 point, Vector3 direct, Vector3 planeNormal, Vector3 planePoint) { float d = Vector3.Dot(planePoint - point, planeNormal) / Vector3.Dot(direct.normalized, planeNormal); //print(d); return d * direct.normalized + point; }
//判断交点是否在平面内 public bool IsVecPosPlane(List<Vector3> vecs, Vector3 pos) { float RadianValue = 0; Vector3 vecOld = Vector3.zero; Vector3 vecNew = Vector3.zero; for (int i = 0; i < vecs.Count; i++) { if (i == 0) { vecOld = vecs[i] - pos; } if (i == vecs.Count - 1) { vecNew = vecs[0] - pos; } else { vecNew = vecs[i + 1] - pos; } //RadianValue += Mathf.Acos(Vector3.Dot(vecOld.normalized, vecNew.normalized)) * Mathf.Rad2Deg; RadianValue += Vector3.Angle(vecOld.normalized, vecNew.normalized); vecOld = vecNew; } //Debug.Log("RadianValue: " + RadianValue); if (Mathf.Abs(RadianValue - 360) < 0.1f) { return true; } else { return false; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理