我正在尝试创建一个函数,该函数在 3d 空间中获取一个平面,并返回一个平面,该平面将完全适合屏幕上网格的一个部分。
屏幕上的网格是固定的,由 X 和 Y 中的分区或屏幕上的一组线定义。
原始平面可以是屏幕上的任何大小或方向,但它永远不会占据整个屏幕。
我正在使用 C# 在 Unity3.5.2f2 中工作。我已经在 SO 上发布了这个,因为它非常基于数学,而不仅仅是 Unity 一般知识。理想情况下,解决方案不会使用外部库,尽管这是可能的。
我有几种方法,希望有任何意见;
将平面投影到屏幕空间,获取网格的最小/最大 x 和 y 值(边界框),使用它来计算比例 xform(使用网格的高度/长度与屏幕划分的差异)。将网格的两条边捕捉到选定的分区后,重新投影到世界空间。
由于分割本质上是矩形的,因此创建多个视锥体,并提出一些在 3D 空间中缩放/平移平面以适应视锥体的方法。
函数原型是;
Plane adjustPlaneToFitScreens(Plane _plane)
有什么想法吗?