怎样用OpenGL画不可能图形

让我做的话,别把它当三维图形,就当它是二维图像。
这不过是3个7拼出来的图像。
--------------------------------------------------------------
这种图形有卖的:Impossible Triangle, Cubed by eriban on Shapeways
怎样用OpenGL画不可能图形

换个角度看,其实它是弯的:
怎样用OpenGL画不可能图形

怎样用OpenGL画不可能图形


■网友
我想了想,应该先去搜索一下有没有现成的CAD模型文件,导出ply文件 (便于C语言读取顶点数据)然后直接渲染模型。自己做的话,我先简单地画一些立方体,旋转了一下还真有点像:怎样用OpenGL画不可能图形

其实是这样子的怎样用OpenGL画不可能图形

午休 —— 下午再修改试试----------------------------------- 午休过后的分割线 ----------------------------找到了模型文件,原来其中一个方块是斜切了一半的,旋转到一定角度时看上去就像是相邻的。补两个图: 【怎样用OpenGL画不可能图形】 怎样用OpenGL画不可能图形

怎样用OpenGL画不可能图形

附,从 freecad 导出来的 obj 文件。v开头的是坐标, f 开头的是三角形顶点的索引值# FreeCAD v0.16 build6706 (Git) Arch module# http://www.freecadweb.orgo Impossible_Triangle_v2v -50.0 9.999 -60.0v 0.0 9.999 -50.0v 0.0 9.999 -60.0v -50.0 9.999 -50.0v 0.0 0.0 -50.0v -50.0 0.0 -50.0v -50.0 0.0 -60.0v 9.999 0.0 -60.0v 9.999 10.0 -10.0v 9.999 0.0 -10.0v 9.999 10.0 -60.0v 0.0 10.0 -10.0v 0.0 10.0 -60.0v 10.0 0.0 -10.0v 0.0 40.0 -10.0v 10.0 40.0 -10.0v 0.0 50.0 0.0v 10.0 50.0 0.0v 10.0 0.0 0.0v 0.0 0.0 0.0f 1 2 3f 1 4 2f 4 5 2f 4 6 5f 4 1 7f 4 7 6f 8 9 10f 8 11 9f 11 12 9f 11 13 12f 3 11 8f 13 11 3f 7 3 8f 1 3 7f 9 14 10f 15 9 12f 16 9 15f 16 14 9f 17 16 15f 18 16 17f 10 19 20f 14 19 10f 5 6 7f 5 10 20f 8 5 7f 8 10 5f 20 18 17f 19 18 20f 16 18 19f 16 19 14f 2 13 3f 12 2 5f 12 5 20f 17 15 12f 17 12 20f 12 13 2------------------------------- 无聊的分割线 ------------------------------想到另一个障眼法,原图:怎样用OpenGL画不可能图形

此时单独绘制立方体的其中两个面作为遮挡怎样用OpenGL画不可能图形

旋转到一定角度后:怎样用OpenGL画不可能图形


■网友
拆分成不同颜色的三角形,拿二维图来画


    推荐阅读