100% Guaranteed Results


GAMES101 – 教授:闫令琪 Solved
$ 29.99
Category:

Description

5/5 – (1 vote)

计算机图形学与混合现实研讨会
GAMES:Graphics And Mixed Environment Seminar

注意:
• 任何更新或更正都将发布在论坛上,因此请偶尔检查一下。
• 论坛链接:http://games-cn.org/forums/forum/graphics-intro/。
• 你必须独立完成自己的作业。
• 你可以在论坛上发布帖子求助,但是发布问题之前,请仔细阅读本文档。
• 在截止时间之前将你的作业提交到 SmartChair 上。

1 总览
Bézier 曲线是一种用于计算机图形学的参数曲线。在本次作业中,你需要实现 de Casteljau 算法来绘制由 4 个控制点表示的 Bézier 曲线 (当你正确实现该算法时,你可以支持绘制由更多点来控制的 Bézier 曲线)。
你需要修改的函数在提供的 main.cpp 文件中。
• bezier:该函数实现绘制 Bézier 曲线的功能。它使用一个控制点序列和一个
OpenCV::Mat对象作为输入,没有返回值。它会使 t在 0 到 1 的范围内进行迭代,并在每次迭代中使 t增加一个微小值。对于每个需要计算的 t,将调用另一个函数 recursive_bezier,然后该函数将返回在 Bézier 曲线上 t 处的点。最后,将返回的点绘制在 OpenCV ::Mat对象上。
• recursive_bezier:该函数使用一个控制点序列和一个浮点数 t 作为输入,实现 de Casteljau 算法来返回 Bézier 曲线上对应点的坐标。
2 算法
De Casteljau 算法说明如下:
1. 考虑一个 p0, p1, … pn 为控制点序列的 Bézier 曲线。首先,将相邻的点连接起来以形成线段。
2. 用 t : (1 −t) 的比例细分每个线段,并找到该分割点。
3. 得到的分割点作为新的控制点序列,新序列的长度会减少一。
4. 如果序列只包含一个点,则返回该点并终止。否则,使用新的控制点序列并
转到步骤 1。
使用 [0,1] 中的多个不同的 t 来执行上述算法,你就能得到相应的 Bézier 曲线。
3 开始编写
在本次作业中,你会在一个新的代码框架上编写,它比以前的代码框架小很多。和之前作业相似的是,你可以选择在自己电脑的系统或者虚拟机上完成作业。
请下载项目的框架代码,并使用以下命令像以前一样构建项目:
$ mkdir build
$ cd build $ cmake . .
$ make
1
2
3
4
之后,你可以通过使用以下命令运行给定代码./BezierCurve。运行时,程序将打开一个黑色窗口。现在,你可以点击屏幕选择点来控制 Bézier 曲线。程序将等待你在窗口中选择 4 个控制点,然后它将根据你选择的控制点来自动绘制 Bézier 曲线。代码框架中提供的实现通过使用多项式方程来计算 Bézier 曲线并绘制为红色。两张控制点对应的 Bézier 曲线如下所示:

在确保代码框架一切正常后,就可以开始完成你自己的实现了。注释掉 main 函数中 while循环内调用 naive_bezier函数的行,并取消对 bezier函数的注释。要求你的实现将 Bézier 曲线绘制为绿色。
如果要确保实现正确,请同时调用 naive_bezier和 bezier函数,如果实现正确,则两者均应写入大致相同的像素,因此该曲线将表现为黄色。如果是这样,你可以确保实现正确。你也可以尝试修改代码并使用不同数量的控制点,来查看不同的 Bézier 曲线。
4 评分与提交
评分:
• [5 分]提交的格式正确,包含所有必须的文件。代码可以编译和运行。
• [20 分] De Casteljau 算法:
对于给定的控制点,你的代码能够产生正确的 Bézier 曲线。
• [5 分]奖励分数:实现对 Bézier 曲线的反走样。(对于一个曲线上的点,不只把它对应于一个像素,你需要根据到像素中心的距离来考虑与它相邻的像素的颜色。)
• [-2 分]惩罚分数:
未删除 /build, /.vscode 和 assignment4.pdf。
未按格式建立 /images,缺少结果图片。未提交或未按要求完成 README.md。
代码相关文件和 README 文件不在你提交的文件夹下的第一层。
提交:
• 当你完成作业后,请清理你的项目,记得在你的文件夹中包含 CMakeLists.txt 和所有的程序文件 (无论是否修改);
• 同时,请新建一个 /images 目录,将所有实验结果图片保存在该目录下;
• 再添加一个 README.md 文件写清楚自己完成了上述得分点中的哪几点 (如果完成了,也请同时提交一份结果图片),并简要描述你在各个函数中实现的功能;
• 最后,将上述内容打包,并用“姓名 Homework4.zip”的命名方式提交到 SmartChair 平台。
平台链接:http://smartchair.org/GAMES2020Course-YLQ。

Reviews

There are no reviews yet.

Be the first to review “GAMES101 – 教授:闫令琪 Solved”

Your email address will not be published. Required fields are marked *

Related products