视觉错觉艺术
2021-1-20 ~ 2022-1-16
(0)
一、 视觉错觉效果图如下
二、思想
先画小球从左到右排放,然后再到下一行继续重复上一个过程。
三、完整代码如下
///////////////////////////////////////////////////
// 程序名称:视觉错觉艺术图
// 编译环境:VS2019, EasyX_20200902
// 作 者:梦萤花火
// 最后修改:2021-1-24
//
#include <graphics.h>
#include <conio.h>
int x; // X轴坐标
int y; // y轴坐标
int g_multiples = 0; // 倍数:作用是对弧度角进行改变
float g_PI = 3.1415927; // 圆周率
float g_radianAngle; // 起始角的弧度
// 实施画单个完整小球的函数
void DrawCell(
int left_x, // 左顶点的X轴坐标
int top_y, // 左顶点的y轴坐标
float PI, // 圆周率
float radianAngle // 起始角的弧度
)
{
// 设置无边框的填充圆的颜色
setfillcolor(RGB(250, 250, 250));
// 画无边框的填充圆。
solidcircle(left_x + 25, top_y + 25, 20);
// 设置无边框的填充扇形颜色
setfillcolor(RGB(80, 80, 80));
// 画无边框的填充扇形
solidpie(left_x + 5, top_y + 5, left_x + 50 - 5, top_y + 50 - 5, radianAngle, radianAngle + PI);
// 设置无边填充圆的颜色
setfillcolor(RGB(158, 2, 251));
// 画无边填充圆
solidcircle(left_x + 25, top_y + 25, 15);
}
int main()
{
// 初始化绘图窗口
initgraph(830, 580);
// 设置背景色
setbkcolor(WHITE);
// 用背景色清空屏幕
cleardevice();
// 设置绘图色为背景颜色:因为在确定每一个小球的位置时要画一个有边框的矩形,所以设置如果去掉会显示矩形边框
setcolor(RGB(185, 230, 0));
// 设置无边框的填充矩形的颜色
setfillcolor(RGB(185, 230, 0));
// 画外层无边框的填充矩形,限制所有小球的范围
solidrectangle(10, 10, 820, 570);
// 控制行数
for (size_t j = 0; j < 11; j++)
{
// 控制列数
for (size_t i = 0; i < 16; i++)
{
x = 15 + 50 * i, // X轴坐标
y = 15 + 50 * j, // y轴坐标
g_radianAngle = 0 + g_multiples * g_PI / 4; // 起始角的弧度
if (i < 15 ? g_multiples++ : g_multiples = g_multiples);
// 画有边矩形,确定单个小球的位置
rectangle(x, y, x + 50, y + 50);
// 画单个小球
DrawCell(x, y, g_PI, g_radianAngle);
}
}
// 按任意键退出
_getch();
closegraph();
}
添加评论
取消回复