计算机 数学图形与动画 网摘

由于本人平时页想过一些图形的变化,奈何头脑不够又怕想错(比如将太极图展开成长方形的颜色是如何分布的(小学时就用纸做过,但是很不理想))
在B站上看到3blue1brown,太牛逼了,唤起了我想用代码实现这种东西的想法,顺便把自己搜到的这种“数学可视化” 的相关资源、可运行代码放出来,这就是本贴的意义。

万能的知乎:3Blue1Brown 的视频是怎么制作的?
https://www.zhihu.com/question/57357012/answer/723888621

一、相关推荐

工具:
matlab(高端不会用)
Wolfram Mathematica(太牛逼了)
LaTeX(从高等数学的图片中提取算式)官网:https://mathpix.com/

库:
openCV
openGL
Direct3D(图形接口)
python的turtle

网站:
贴吧fx-es(ms),里面一堆用计算器(不是计算机)的大佬,做让我觉得匪夷所思的东西。

二、可运行的代码(抛砖引玉)

c语言实现分型几何
https://yq.aliyun.com/articles/32082

其中"graphics.h"库
https://www.easyx.cn/downloads/下载EasyX库(附带graphics.h,单独下载.h文件是没用的)

#include<stdio.h>
#include<math.h>
#include<conio.h>
#include"graphics.h"
void  koch(double x0, double y0, double x1, double y1, int k)
{
	double x2, y2, x3, y3, x4, y4;
	x2 = 2.0 / 3 * x0 + 1.0 / 3 * x1;  /*由上面的运算可以得到其余三点 坐标的计算式*/
	y2 = 2.0 / 3 * y0 + 1.0 / 3 * y1;
	x3 = 1.0 / 3 * x0 + 2.0 / 3 * x1;
	y3 = 1.0 / 3 * y0 + 2.0 / 3 * y1;
	x4 = 1.0 / 2 * (x0 + x1) - sqrt(3.0) / 6 * (y1 - y0);
	y4 = 1.0 / 2 * (y0 + y1) + sqrt(3.0) / 6 * (x1 - x0);
	if (k > 1)    /*如果迭代次数大于1,就继续迭代下去,即执行以下程序*/
	{
		koch(x0, y0, x2, y2, k - 1);  /*对以(x0, y0)和(x2, y2)为端点的线段作为
		初始线段进行迭代运算,以下类同*/
		koch(x2, y2, x4, y4, k - 1);
		koch(x4, y4, x3, y3, k - 1);
		koch(x3, y3, x1, y1, k - 1);
	}
	else {      /*如果迭代次数等于1,停止迭代,画出迭代生成的图形*/
		line(x0, y0, x2, y2);       /*用直线联结两点(x0, y0)和(x2, y2)*/
		line(x2, y2, x4, y4);       /*用直线联结两点(x2, y2)和(x4, y4)*/
		line(x4, y4, x3, y3);       /*用直线联结两点(x4, y4)和(x3, y3)*/
		line(x3, y3, x1, y1);       /*用直线联结两点(x3, y3)和(x1, y1)*/
	}
}

int main()
{
	int n, gdriver = DETECT, gmode;      /*定义迭代次数n*/
	initgraph(&gdriver, &gmode, "C:\\Win-TC\\BGI");     /*图形系统初始化*/
	printf("Please input the value of the positive integer n (n<9):");
	scanf("%d", &n);               /*输入迭代次数n*/
	setcolor(GREEN);
	koch(50, 120, 450, 120, n);
	getch();
	closegraph(); /*关闭图形系统*/
	return 0;
}

布朗树(貌似是java代码?)
https://blog.csdn.net/qq_39464369/article/details/89514828

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超自然祈祷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值