用opengl es怎么画个圆柱?求高手指点,最好能详细解释下思路,谢谢!不要用Openglopengl es ,圆柱

解决方案 »

  1.   

    应该是一样的,把圆柱表面切成N个三角形,输入顶点坐标(Vertices)以及构成各三角形的点的索引(Indices)
      

  2.   


    应该是对一个单位圆柱进行三角形化,实际的圆柱都可以通过对单位圆柱进行缩放/旋转/位移等操作得到.摞在一起的圆柱,opengl有Z-buffer,不会把被遮住的部分画出来的.
      

  3.   

    opengl es只能绘制三角形,所以只能用三角形来叠加出来。可以采用如下的方法来考虑:圆柱体样式:水平横放,原点在中心处。圆柱体长度为H,截面圆半径为R。1、以两端的圆形来切割,每个刻度为18度(可以自己设置),那么将两端的圆划分为20份。2、左边的圆形切割点为l1,l2,l3,l4.....
       右边的圆形切割点为r1,r2,r3,r4.....   l1,l2,r1,r2构成一个长方体,长方体由两个三角形组成,也就是{l1,l2,r1},{l2,r2,r1}两个三角形。
    3、以此类推,将所有的三角形都绘制完毕,圆柱就出来了。
       所有定点的x坐标:左边为-H/2,右边为H/2。
       y,z的坐标是一个简单的三角函数公式,很简单,自己去画个图推理下吧(y=R*sin(偏移的角度),z=R*cos(偏移的角度)),偏移的角度从0~360,每次递增18(这个18可以自己设置)。4、如果要绘制竖立的,那就旋转一下好了,或是干脆建模的时候竖立建模,原理差不多。希望你能看明白,这个真是不难。绘制好一个了,其他的就创建10个对象好了,启动深度测试,会自动将遮拦的部分砍掉。