学数学的重要性

本文介绍了如何使用C语言在Linux环境下,结合数学库,通过循环和计算实现 Sin 和 Cos 波形的动态绘制,并分享了一个来自YouTube的教程实例。通过代码示例和终端操作,读者可以理解视频代码的工作原理并尝试修改效果。
摘要由CSDN通过智能技术生成

博主博客主页
博主很少来CSDN, 可能不会及时更新

需要跑在linux环境

大家可以魔改并查看魔改效果

视频 代码来源于YouTube 为何编程需要数学(・∀・)_哔哩哔哩_bilibi

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <unistd.h>

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 = 1;
                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.01;
        //B += 0.02;
        usleep(30000);
    }
    return 0;
}

编译和运行

在WSL或linux等系统终端中:

  • 新建 ttq.c ,并将代码复制进去
  • 按照以下代码运行
gcc ttq.c -lm -o ttq 	# 将c编译成可执行程序 -lm 链接math库(sin cos 等函数)
./ttq				# 运行
效果图如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LTw9JhMc-1637591251701)(/blog/res/ttq.gif)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值