GAMES101:作业4

本文介绍了GAMES101课程的第四次作业,任务是利用De Casteljau算法在OpenGL环境中绘制贝塞尔曲线。作业要求注释掉naive_bezier函数的调用,使用递归的bezier函数来实现。bezier函数通过OpenCV::Mat对象迭代t值,调用recursive_bezier进行递归计算,并将结果绘制到图像上。recursive_bezier函数则根据控制点和t值应用de Casteljau算法。实验结果显示,单独运行和naive_bezier同时运行会有颜色差异,需要特定的代码结构才能正确显示黄色融合效果。
摘要由CSDN通过智能技术生成

GAMES101:作业4

附其他所有作业超链接如下:
Games101 作业0:作业0
Games101 作业1:作业1
Games101 作业2:作业2
Games101 作业3:作业3
Games101 作业4:作业4
Games101 作业5:作业5
Games101 作业6:作业6
Games101 作业7:作业7

完整代码获取途径:
https://github.com/liupeining/Games_101_homework

光栅化结束了,下面进入了Geometry的部分。任务是画贝塞尔曲线:
首先什么都不用改,直接运行一下框架查看有无问题:
在这里插入图片描述

可以看到运行结果一切正常,接下来开始完成作业。
按照要求:“注释掉 main函数中 while 循环内调用 naive_bezier 函数的行,并取消对 bezier 函数的注释。要求你的实现将 Bézier 曲线绘制为绿色。”

naive_bezier里面是代数方法,作业希望我们用De Casteljau算法来实现,也就是通过递归的方式。实际上是非常简单的递归,代码如下

• bezier:该函数实现绘制 Bézier 曲线的功能。它使用一个控制点序列和一个OpenCV:: Mat 对象作为输入,没有返回值。它会使 t 在 0 到 1 的范围内进行迭代,并在每次迭代中使 t 增加一个微小值。对于每个需要计算的 t,将调用另一个函数 recursive_bezier,然后该函数将返回在 Bézier 曲线上 t处的点。最后,将返回的点绘制在 OpenCV :: Mat 对象上。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值