three.js - 用等于点之间距离的点细分曲线
问题描述
在 three.js 中,我将push
一些Vector3()
坐标编辑到变量中,然后执行THREE.CatmullRomCurve3(points).getPoints(points*32);
以获取曲线。如果我沿着它挤出一个形状,一切看起来都很好。
我现在遇到的问题是我希望相机沿着这条曲线运行,但速度会根据它从一个(原始)点到另一个点的距离而变化。根据threejs.org 中的一个示例,我循环遍历每个新点并将相机的位置设置为这些点。但如果两点相距 1 米,或者相距 2 米,那么每个点之间仍然是 32 个子点,并且相机将在完全相同的时间到达终点。
我怎样才能让 1 米的拉伸得到 32 个子点,2 米的拉伸得到 64 个子点,这样相机完成 2 米拉伸的时间是 1 米拉伸的两倍?
解决方案
我现在遇到的问题是我希望相机沿着这条曲线运行,但速度会根据它从一个(原始)点到另一个点的距离而变化。
如果您使用Curve.getSpacedPoints()而不是Curve.getPoints()
,您将收到沿曲线的等间距点。
three.js R106
推荐阅读
- angular - Angular:ag grid navigateToNextRow Callback 不知道这个
- angular - 使用 Angular Material 制作表单并获取非输入字段的值
- jquery - Jqgrid 搜索工具栏和网格工具栏同步合二为一。与服务器端调用
- javascript - 我想用 Angular 获取单选按钮的值
- ruby - Ruby 在 Ubuntu 中无法识别
- ios - iOS:全局检测键盘输入
- reactjs - 在编辑输入中加载嵌套资源属性值
- amazon-web-services - 替代在本地安装 Docker(Win 10 Home)以进行 AWS 无服务器开发
- google-apps-script - 电子表格中的当前值过滤器?
- symfony - Symfony 3. 无法使用 Doctrine 删除元素。“父行:外键约束失败”