算法验证失败了,哦蛤蛤…
作为一个每周只有3小时时间能使用电脑的高三党来说,周末的时间异常宝贵。因此多数有关的研究都会尽可能在周内学校里面完成。(周内强制住校伤不起啊…)
最近我正在研究正投影成像原理,经过2~3个小时的努力后…
{:01:}
总算是成功了…当时我还真的就摔铅笔了,不过没摔那么远……
XD=(XR(1-sinA)+ZR(sinA))cosC
YD=(YR(sinB)+ZR(sinB))sinC
XD,YD为显示在屏幕上的坐标,XR,YR,ZR为实际坐标。A,B,C为摄像头角度。
在学校里面完成对公式的推导以后,回家后我迫不及待地写了代码。经过N次编译出错后,终于见到了窗口,我本来想着会不会看见一个45°倾斜的正方体的边框,但是……
又是一个被浪费掉的周末…{:24:}
对于这些东西。。。建议使用向量运算
然后再用矩阵。
这就是为何有计算机图形学的原因。。。
首先摄像机角度的说法就不大好,用一个向量最好。
本来投影用向量算是最好的,乘单位向量(如果没记错的话) 想起来我在做 web红魔乡 3面时算那个伪 3d 背景的情况了(背景地板是用的 css 3d 变换,但那几个塔本质上只是几个黄点,直接做 3d 变换就会变成椭圆形...于是我只好自己算坐标然后把它们放到合适的位置上...
然后,关于正交投影这边可能有一点误解:一般说的正交投影,视平面会直接选取得跟坐标轴平行,所以方程非常简单(因为其实只需处理两个坐标)。看起来你现在的思路似乎是“创建一个立方体 -> 正交投影到某个斜平面”,我觉得应该改成“创建一个立方体 -> 对所有顶点做旋转变换 -> 普通的正交投影”这样会比较容易
ps:想坑 3d 渲染器吗?推荐这个吧(几乎没有数学哦)
http://blogs.msdn.com/b/davrous/archive/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript.aspx _(:з」∠)_都是大触 围观一下 路过……给学霸们跪了 嘛。。。技术区是很民主的,如果楼主提前和版主打招呼的话,他会让你选择麻袋的颜色
页:
[1]