Unity关于计算线和⾯的交点
关于射线和⾯相交的理论在这⾥⽆需赘述
广西景点这⾥展⽰的是使⽤向量和三⾓函数来计算的线和⾯的交点
个⼈感觉代码⾥⾯使⽤向量和三⾓函数来计算⽐较⽅便写
/// <summary>
特色小吃/// 计算射线和⾯的交点
/// 会有⼀定误差,浮点数计算没有办法
百年校庆/// </summary>
/// <param name="ray">射线</param>
感受阳光
/// <param name="normal">⾯的法线</param>
/// <param name="Point">⾯上的⼀点</param>
/
// <param name="ret">交点</param>
/// <returns>线和⾯是否相交</returns>
bool interctionOfRayAndFace(Ray ray, Vector3 normal,Vector3 Point, out Vector3 ret)
肌肉力量
{
if (Vector3.Dot(ray.direction, normal) == 0)
{
//如果平⾯法线和射线垂直则不会相交
ret = ;
return fal;
}
Vector3 Forward = normal;
股票pe
Vector3 Offt = Point - igin; //获取线的⽅向
float DistanceZ = Vector3.Angle(Forward, Offt); //计算夹⾓
DistanceZ = Mathf.Cos(DistanceZ / 180f * Mathf.PI) * Offt.magnitude; //算点到⾯的距离
秋日赴阙题潼关驿楼
朝花夕拾句子赏析DistanceZ /= Mathf.Cos(Vector3.Angle(ray.direction, Forward) / 180f * Mathf.PI); //算点沿射线到⾯的距离 ret = igin + ray.direction * DistanceZ; //算得射线和⾯的交点
return true;
}