[英]GL_TRIANGLE_FAN and Textures Problems
我用三角扇做了一个半圈,这是代码:
marco.bind();
gl.glPushMatrix();
gl.glTranslated(-3.5,2,10.51);
gl.glBegin(gl.GL_TRIANGLE_FAN);
for(int i = 1; i <= 9; i++){
double x = 0.7 * Math.cos(angulo);
double y = 0.7 * Math.sin(angulo);
System.out.println ("Valor de X:" + x + " Valor de Y:" + y);
gl.glTexCoord2d(x, y);gl.glVertex3d(x, y, -0.5);
angulo += inc_angle;
但是我没有达到我想要的视觉效果,我的真实纹理看起来像这样:
相反,我得到了这样的东西:
现在我明白了
我的形象有问题吗? 我认为需要减少一些角落。
纹理坐标在(0,0) - (1,1)
范围内(-0.7,-0.7) - (0.7,0.7)
对象坐标在(-0.7,-0.7) - (0.7,0.7)
。 您需要变换对象坐标以校正纹理上的坐标。
例如:
double x = Math.cos(angulo);
double y = Math.sin(angulo);
gl.glTexCoord2d(x*0.5+0.5, 1.0-y);
gl.glVertex3d(x*0.7, y*0.7, -0.5);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.