错觉图片生成实验 - 平行的线

本文介绍了大一学生使用C语言完成的错觉图片实验,特别是平行的线效果。通过调研、理解错觉原理,利用两层for循环绘制不相连的方块群,再通过动态变换实现方块交错排布,增强视觉错觉。最终,将代码放入while循环中实现连续动态展示。
摘要由CSDN通过智能技术生成

(图书介绍:童晶:《C和C++游戏趣味编程》新书预告

这学期的线下C语言课程,大一同学们学完旋转蛇案例后(童晶:第4章 旋转蛇(《C和C++游戏趣味编程》配套教学视频)),布置了一次错觉图片生成实验的PBL,给了大家5天时间分组完成代码、ppt报告。

这次,介绍景骏飞、冯朦胧同学实现的平行的线。由于同学们学习C语言刚一个月,还没有正式学习数组、函数等语法知识,因此代码可能不够完善。以下提供了分步骤的实现思路、代码,大家可以参考。

首先是同学们调研的目标效果:

v2-dfea7e7d49673319039d47de700b939b_b.jpg

交替的明暗方块不直接与它们上方和下方的行上的方块对齐。结果是每行之间的水平线看起来是倾斜的。实际上,这些水平线彼此之间是完全平行且笔直的。

错觉原理

左氏错觉:当两个轮廓彼此接近时,它们在视网膜上的投影也彼此接近,由于视网膜上的神经细胞兴奋产生视觉信息时存在侧抑制现象,即相邻的感受细胞间存在互相抑制的现象,由轮廓所刺激的视细胞的活动被改变,使得神经兴奋的中心发生了相对位移,进而引起几何图形形状和方向的错觉。

第一步:初步绘制不相连的方块群

两个for循环嵌套,内层循环绘制一列等距间隔的白色方块和中间的灰色直线

v2-87fcddeaadc9c52cd4dbcee7120d64d2_b.jpg

第二步:动态变换的实现

在上一步代码的基础上,清除画布,再用两个for循环的嵌套内引入变量来控制相邻行内方块的移动方向相反,从而实现方块的交错排布。

v2-f5de5c09c71db0066d58642bc4df6d4d_b.jpg

第三步:视觉效果的完善

通过加入变量i来控制位移方向不同的方块间隔的行数,更加接近原图,使得错觉效果更加明显。

v2-cffff8207d0ae8e6f6dcf491617dedbb_b.jpg

最后,把所有图形绘制的代码套入一个while死循环中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值