c# - 非线性正交缩放
问题描述
简介:我在 Unity 中有一个关卡,并且在正交投影中将相机设置为自上而下的视图。我想在 [100, 2000] 单位的正交大小范围内使用带有触摸输入的捏合手势放大/缩小。
问题:我对此有 2 个解决方案,但我并不满意。
一种是具有线性单位数量的缩放,正交尺寸越大(缩小)缩小越慢。如果我放大,放大会更快。触摸输入感觉不好也不直观。
另一种是非线性解决方案,工作正常,但不是很精确,并且有很多放大和缩小,它总是放大而不是缩小。
//Solution Liniear
camera.orthographicSize += deltaZoom;
//Solution Non-Liniear (scales with orthographic size)
deltaZoom *= (camera.orthographicSize / 100);
camera.orthographicSize += deltaZoom;
问题:有什么数学解决方案,所以当正交尺寸较小时相机变焦较慢,而当正交尺寸较大时变焦较快?我也希望它精确,就像我用手指捏合缩放一样,它会精确地放大单位数量。
解决方案
推荐阅读
- javascript - 如何根据高度在javascript中对矩形进行排序
- database - 是否有任何方法可以根据从 MS 访问中的查找字段中选择的值来存储特定的数值
- centos - 如何修复openproject配置上的“无事可做”错误?
- c++ - 用 boost::asio::async_read 替换 boost::asio::async_read_some
- react-native - 找不到项目的匹配配置:react-native-gesture-handler:所有可消耗的配置都没有属性
- java - Log4j2 不像第一个版本那样滚动文件,我在新的配置布局中遗漏了什么吗?
- amazon-web-services - 访问被拒绝获取公开可用的 S3 对象
- c - 使用主函数参数给定的名称将标准输出重定向到文本文件
- kubernetes - 有没有办法在 Kubernetes 中进行基于名称的路由
- javascript - 更新反应状态后调用异步操作