欢迎光临散文网 会员登陆 & 注册

RTS支持镜头Y轴旋转的圈选框 (伪矩阵版)

2023-04-26 14:49 作者:莫末陌寞  | 我要投稿

这里的伪矩阵是借助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 输入值

x_%7Bdis%7D%20%20%3D%20Start%E5%92%8CEnd%E5%90%91%E4%B8%8A%E4%B8%8B%E5%BB%B6%E4%BC%B8%E7%9A%84%E7%9B%B4%E7%BA%BF%E7%9A%84%E8%B7%9D%E7%A6%BB(y%20%3D%20x_%7B1%7D%2C%20y%3Dx_%7B2%7D)

y_%7Bdis%7D%20%3D%20Start%E5%92%8CEnd%E5%90%91%E5%B7%A6%E5%8F%B3%E5%BB%B6%E4%BC%B8%E7%9A%84%E7%9B%B4%E7%BA%BF%E7%9A%84%E8%B7%9D%E7%A6%BB(x%3D%20y_%7B1%7D%2C%20x%20%3D%20y_%7B2%7D)

当镜头旋转,我们期望的延伸方向随镜头变化,标准世界坐标系就不能匹配运算了。

这里的解决方案是让坐标系带着点旋转

我们这里的旋转同时改变了Start和End点的位置,center点不再准确,但是之前的数据就能得出center。

旋转不变


RTS支持镜头Y轴旋转的圈选框 (伪矩阵版)的评论 (共 条)

分享到微博请遵守国家法律