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

这篇博客介绍了大一学生在学习C语言一个月后,利用所学知识实现的一种视觉错觉图片——平行线错觉。学生们通过两个for循环嵌套,动态变换方块位置,创建了交错排布的方块,模拟了左氏错觉的效果。博客详细阐述了实现步骤,包括初步绘制、动态变换和视觉效果完善,并提供了逐步实现的代码思路。
摘要由CSDN通过智能技术生成

7e20edb7afd4410ad6f2ee0eda26414e.png

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

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

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

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

8efcd472fa8d3cb4a089a3086050cf70.png

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

错觉原理

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

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

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

19110a122d784166b05606dbbb732ace.png

第二步:动态变换的实现

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

ac1ae9d8d59a3b137fa77efd356e54bc.png

第三步:视觉效果的完善

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

110441642d4efcee21c89ba205cc7e6a.png

最后,把所有图形绘制的代码套入一个while死循环中,就能实现反复切换啦。

//最终版本,添加注释
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值