在 3D 中排序点
Sorting points in 3D
如果我有一组 3D 点和一个相机平面,我将如何根据到该平面的距离对它们进行排序?我至少需要伪代码。我想从相机构造一个平面然后对点进行排序。
class CompareDistance
{
public float DistanceToCameraPlane(Vector3 pointInSpace)
{
var cameraPosition = Camera.main.transform.position;
var cameraForward = Camera.main.transform.forward;
var deltaToCamera = pointInSpace - cameraPosition;
var projection = Vector3.Project(deltaToCamera, cameraForward);
return projection.magnitude;
}
}
如果我有一组 3D 点和一个相机平面,我将如何根据到该平面的距离对它们进行排序?我至少需要伪代码。我想从相机构造一个平面然后对点进行排序。
class CompareDistance
{
public float DistanceToCameraPlane(Vector3 pointInSpace)
{
var cameraPosition = Camera.main.transform.position;
var cameraForward = Camera.main.transform.forward;
var deltaToCamera = pointInSpace - cameraPosition;
var projection = Vector3.Project(deltaToCamera, cameraForward);
return projection.magnitude;
}
}