用C++写一个简单的动态甜甜圈吧字符串显示的那种哦
【摘要】 用这个例子,复习一下C++吧,这是一款学习机器人编程必不可缺的重要语言!
Linux版本:https://zhangrelay.blog.csdn.net/article/details/110206761
效果是这样的,如下:
字符串版动态甜甜圈
使用编译环境为Win10+Microsoft Visual Studio Community 2019...
用这个例子,复习一下C++吧,这是一款学习机器人编程必不可缺的重要语言!
Linux版本:https://zhangrelay.blog.csdn.net/article/details/110206761
效果是这样的,如下:
使用编译环境为Win10+Microsoft Visual Studio Community 2019,如下:
源代码如下:
-
#include <stdio.h>
-
#include <math.h>
-
#include <cstring>
-
#include <Windows.h>
-
-
void usleep(__int64 usec)
-
{
-
HANDLE timer;
-
LARGE_INTEGER ft;
-
-
ft.QuadPart = -(10 * usec);
-
-
timer = CreateWaitableTimer(NULL, TRUE, NULL);
-
SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0);
-
WaitForSingleObject(timer, INFINITE);
-
CloseHandle(timer);
-
}
-
-
int main() {
-
float A = 0, B = 0;
-
float i, j;
-
int k;
-
float z[1760];
-
char b[1760];
-
printf("\x1b[2J");
-
for (;;) {
-
memset(b, 32, 1760);
-
memset(z, 0, 7040);
-
for (j = 0; j < 6.28; j += 0.07) {
-
for (i = 0; i < 6.28; i += 0.02) {
-
float c = sin(i);
-
float d = cos(j);
-
float e = sin(A);
-
float f = sin(j);
-
float g = cos(A);
-
float h = d + 2;
-
float D = 1 / (c * h * e + f * g + 5);
-
float l = cos(i);
-
float m = cos(B);
-
float n = sin(B);
-
float t = c * h * g - f * e;
-
int x = 40 + 30 * D * (l * h * m - t * n);
-
int y = 12 + 15 * D * (l * h * n + t * m);
-
int o = x + 80 * y;
-
int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);
-
if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
-
z[o] = D;
-
b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
-
}
-
}
-
}
-
printf("\x1b[H");
-
for (k = 0; k < 1761; k++) {
-
putchar(k % 80 ? b[k] : 10);
-
A += 0.00004;
-
B += 0.00002;
-
}
-
usleep(30000);
-
}
-
return 0;
-
}
试一下吧,感受编程语言和数学结合的魅力!!!
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/109863427
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)