在处理中围绕三维球体动态观察
Orbit Around 3D Sphere in Processing
我正在尝试构建一个正在处理中的无限飞行模拟器。我想像卫星一样在第一人称视野中飞越球体(行星),并用箭头键控制方向。我不知道如何在没有万向节锁的情况下设置相机。
这正是我想要做的:
在3D球体上移动
知道如何做到这一点吗?
飞行模拟器应该比这更难,因为在你链接的视频中,角色(以及"跟随"它的相机)似乎并没有真正移动,代表行星的球体只是绕着自己的中心旋转,所以相机没有移动,我认为这只是球体定位好并简单地旋转
如果你想要一个在行星上方有固定高度的"飞行模拟器",这似乎是实现它的最简单方法
你说得对。我希望球体旋转。这就是我目前所掌握的:
float rotationX = 0;
float rotationY = 0;
float velocityX = 0;
float velocityY = 0;
boolean[] keys = new boolean[255];
void setup(){
size(500, 500, P3D);
}
void draw() {
background(150);
if(keys[LEFT]) {
velocityY += 0.04;
}
if(keys[RIGHT]) {
velocityY -= 0.04;
}
if(keys[UP]) {
velocityX += 0.04;
}
if(keys[DOWN]) {
velocityX -= 0.04;
}
translate(width/2, height/2 + 160, 325);
rotateX( radians(-rotationX) );
rotateY( radians(-rotationY) );
sphere(150);
rotationX += velocityX;
rotationY += velocityY;
velocityX *= 0.95;
velocityY *= 0.95;
}
void keyPressed() {
keys[keyCode] = true;
}
void keyReleased() {
keys[keyCode] = false;
}
所以主要的问题是X,Y,Z轴和球体一起旋转。在我的球体上四处走动,并将其与本例中球体的行为进行比较:
collinhover.github.io/kaiopua/
本例中的轴始终是固定的。我不知道如何更好地解释它。
相关文章:
- 如何使用javascript设置元素旋转和动态观察的动画
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串
- 设置多个观察程序以触发动态事件的角度替代解决方案 - 优化的观察者模式
- 动态地向可观察数组中的特定项添加绑定(例如hasfocus)
- AngularJS观察指令属性表达式,动态继承作用域
- 在小间隔内通过javascript更新css时,会出现断断续续的动态观察动画
- Three.js具有两个(切换)摄影机的动态观察控件
- 在处理中围绕三维球体动态观察
- 使用 KNOCKOUTJS 设置动态可观察量
- 通过动态插入的 DOM 元素进行 AJAX 调用,我是否必须使用突变观察器
- 滑块标题问题(动态观察滑块)
- 杜兰达尔多语言应用程序,页面/模块标题作为可观察的,动态更改文档.标题
- 动态观察控件.js导致模型在单击旋转时消失
- 运行时的EmberJS动态观察程序
- Angularjs-我们如何观察ngRepeat中的动态元素,以及动态ng模型名称和ANY更改时的过滤元素值
- js可观察对象的动态绑定
- Knockout:基于未知长度的数组动态创建可观察对象
- 突变观察器没有触发动态变化的回调
- 动态增长的observableArray包含可观察对象
- 如何在设定目标后重新启动动态观察控制