图形学记录19/12/18

图形学实验三

除法问题

1/6=0
1.0000/6.0000=1.blablabla

bmp文件路径

1)codeblock中需读入的bmp文件
需要放在工程的bin/debug/里,和exe文件在一起
2)仍然找不到(使用单步执行发现问题)
注意fopen使用方法和f_open(codeblock里没有)使用方法

if ((file = fopen(file_name, "rb")) == NULL)
	//if (NULL!= fopen(file_name, "rb"))
	{
		return 1;
	}
改为
if ((file = fopen(file_name, "rb")) == NULL)
	//if (NULL!= fopen(file_name, "rb"))
	{
		return 0;
	}

3)将相对路径改为绝对路径(解决!

if (load_texture("ear.bmp", 128, 128, 3, GL_BGR_EXT, GL_NEAREST))
	{
		exit(1);
	}

改为(注意写双划线不是单线**

if (load_texture("F:\\graphics\\太阳系\\bin\\Debug\\ear.bmp", 128, 128, 3, GL_BGR_EXT, GL_NEAREST))
	{
		exit(1);
	}

尽可能将以确定参数写在循环外面

for(k=0;k<num-3;k++)
    {
        b0x=(-1)*line[k].x+3*line[k+1].x-3*line[k+2].x+line[k+3].x;
        b1x=3*line[k].x-6*line[k+1].x+3*line[k+2].x;
        b2x=(-3)*line[k].x+3*line[k+2].x;
        b3x=line[k].x+4*line[k+1].x+line[k+2].x;
        b0x=b0x*(1.0000/6.0000);
        b1x=b1x*(1.0000/6.0000);
        b2x=b2x*(1.0000/6.0000);
        b3x=b3x*(1.0000/6.0000);

        b0y=(-1)*line[k].y+3*line[k+1].y-3*line[k+2].y+line[k+3].y;
        b1y=3*line[k].y-6*line[k+1].y+3*line[k+2].y;
        b2y=(-3)*line[k].y+3*line[k+2].y;
        b3y=line[k].y+4*line[k+1].y+line[k+2].y;
        b0y=b0y*(1.0000/6.0000);
        b1y=b1y*(1.0000/6.0000);
        b2y=b2y*(1.0000/6.0000);
        b3y=b3y*(1.0000/6.0000);

    for(j=0;j<=m;j++)
    {
        t=(GLfloat)j/(GLfloat)m;
        r=t*t*t*b0x+t*t*b1x+t*b2x+b3x;
        q=t*t*t*b0y+t*t*b1y+t*b2y+b3y;

    glBegin(GL_POINTS);
    glColor3f(0.0,1.0,1.0);
    glPointSize(3.0f);
    glVertex2f(r,q);

    }
    }

而不是

for(k=0;k<num-3;k++)
    {
        

    for(j=0;j<=m;j++)
    {
        beyang((glfloat)j/(glfloat)m,line[k],linr[k+1],line[k+2],line[k+3]

    }
    }

b样条小测

p0,p0,p0,p1,p2…p9一共12个控制点,起点位于(p0),曲线段数=控制点数-b样条次数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值