RTS支持镜头Y轴旋转的圈选框 (伪矩阵版)
这里的伪矩阵是借助Unity的Transform(实质是一个矩阵)进行简单的角度变换而实现矩阵功能。
这两天有空可能会安排一下矩阵版,主要是这个就是一个简单的旋转坐标系,不说是大材小用,只能说为了这个功能学矩阵不值得,线代和离散用真有用,学真头疼。

上文

start - end的运算可以认为是求平行线的距离,而坐标轴的在这个运算中存在意义是固定一个x到f(x)的对应关系f。
这个对应关系与平移和旋转有关,比如使用 y=x ,即 y = tan(45°) x 输入值 + cos(45°) x 0:
当 y=x 作为x轴,这个坐标系的 y = 1 直线即 1 = cos(45°)*输入值,可求得输入值为根2。
在标准坐标系的函数为 y = x + 根2。

在使用 y=x 为x轴的坐标系中,y = x + 根2 被映射为了 y = 1,可以轻松求得其与y = 0 (标准坐标系的 y = x)的距离。

还是这张图,Start与End之所以能直接计算蓝色矩形的宽高,是因为他们的坐标(x1, y1)和(x2, y2)受益于Start和End延伸出来的直线适配坐标轴的映射规则:y = tan(0°) x 输入值
当镜头旋转,我们期望的延伸方向随镜头变化,标准世界坐标系就不能匹配运算了。


这里的解决方案是让坐标系带着点旋转
我们这里的旋转同时改变了Start和End点的位置,center点不再准确,但是之前的数据就能得出center。
旋转不变