这学期的线下C语言课程,大一同学们学完旋转蛇案例后(童晶:第4章 旋转蛇(《C和C++游戏趣味编程》配套教学视频)),布置了一次图片生成实验的PBL,给了大家3天时间分组完成代码、ppt报告。
这次,介绍张祺、苏士杰、袁智宇、吴志雄同学实现的深境螺旋错觉。由于同学们学习C语言刚一个月,还没有正式学习数组、函数等语法知识,因此代码可能不够完善。以下提供了分步骤的实现思路、代码,大家可以参考。
首先是同学们调研的目标效果:

静止画面中的圆圈似乎在旋转、变形。
最终实现效果:

依次实现步骤:
1 绘制背景
以大量半径减小,颜色加深的圆圈叠加,实现以画面中心为深色圆,向四周逐渐渐变至浅灰色的效果。

2 绘制一圈圆环
圆圈图层叠加,结合for循环,绘制一圈圆。

3 调整黑白环倾斜角
修改圆环起始,终止坐标,使黑白环连线指向圆心。

4 多重圆环与倾角
多重for循环,绘制多层圆环的同时新圆环与旧圆环间有夹角。

5 按键旋转
应用while语句实现按键旋转效果。
最终代码:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
float rv, pier, offset, interval;
double pi = 3.14159;
int r, r0, n = 0;
COLORREF color[4];//设置小圆的四种颜色
void background()//设置渐变色背景