我正在使用四轮直升机并且为了测试目的,我决定使用Processing给我一个关于微控制器正在处理和计算的可视化示例(以及稍后可能的一些控制算法模拟) 。所以我制作了一个四轮直升机的简单模型,并将其显示在屏幕的右上角。在"休息位置,"我想要一个完美的四轮直升机侧视图,如下所示:
相反,我得到一个这样的图像:
第二张图片是当我在右上方渲染Quad时,第一张是在窗口中将其渲染为死角时。
我理解这里发生了什么,但我不知道如何解决它。渲染系统假设我的视角在屏幕上是死点,因此从我的下方和前方看到的任何东西都在我的视角的右边。我在他们网站上的参考选项卡上探讨了一下,似乎没有什么能完全符合我的要求。我认为会有一个解决方案,但我目前找不到一个。有谁知道如何解决这个问题?感谢。
答案 0 :(得分:1)
听起来您可能正在寻找ortho()
功能。您可以在参考here中阅读相关内容。
设置正交投影并定义平行剪裁体积。无论相近还是远离相机,所有具有相同尺寸的对象都会显示相同的尺寸。
在不调用ortho()
函数的情况下考虑这个小示例程序:
void setup(){
size(500, 500, P3D);
}
void draw(){
background(255);
translate(300, 100);
noFill();
stroke(0);
box(100, 100, 100);
}
现在让我们将调用添加到ortho()
函数:
void setup(){
size(500, 500, P3D);
}
void draw(){
background(255);
translate(300, 100);
ortho();
noFill();
stroke(0);
box(100, 100, 100);
}
你现在不再看到广场的“深度”了。您可以向ortho()
函数添加参数,使其完全符合您的要求,但这些是基础知识。
或者,您可以执行一些操作,例如设置您绘制到中间的视图,然后在主视图的右上角绘制该视图。