十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用代码画出会动的心形:一份零基础的数学可视化入门指南

用代码画出会动的心形:一份零基础的数学可视化入门指南 用代码画出会动的心形一份零基础的数学可视化入门指南【免费下载链接】Awesome-Love-Code表白代码收藏馆~谁说程序猿不懂浪漫❤️项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-Love-Code你有没有想过屏幕上一行行冷静的公式其实可以变成一颗会呼吸的爱心、一朵盛开的玫瑰在开源项目Awesome-Love-Code里就收藏着大量这样的表白代码——从 2D 心形曲线到 3D 粒子心形从数学函数到视觉艺术它把数学可视化这件事变成了人人都能上手的浪漫实验。这篇文章会陪着你从零开始亲手做出第一件作品再一步步把它变成立体的、会动的、属于你自己的版本。三分钟画出第一个心形先别急着研究复杂的理论。打开你熟悉的 Python 环境装上matplotlib和numpy这两个库然后新建一个文件把下面这段代码粘进去运行import numpy as np import matplotlib.pyplot as plt t np.linspace(0, 2 * np.pi, 500) x 16 * np.sin(t) ** 3 y 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t) plt.plot(x, y, colorred, linewidth2) plt.axis(equal) plt.show()当你看到屏幕上浮现出那颗饱满的红色爱心时恭喜你你的第一件数学可视化作品诞生了。这里面其实没什么玄机t从 0 走到 2π就像秒针绕着表盘转一圈每走一步两个配方会分别算出这一个点的横坐标和纵坐标。一个式子负责让点左右来回摆动另一个负责让点上下起伏几百个点连起来曲线就长成了心的形状。这就是数学可视化最迷人的地方——你不需要背公式只需要理解每个点都遵循同一套规则图形自然会出现。如果你更喜欢 MATLAB仓库的MatLab/001目录里也有同样的心形案例逻辑完全一致跑一遍就懂。想换颜色把colorred改成任何你喜欢的颜色比如粉色hotpink一颗少女心立刻上线。让心形跳动起来的小技巧静态的心形看久了是不是觉得少了点什么接下来我们让它活起来。数学可视化入门后你最该学会的本领就是调参数。就拿刚才的心形来说如果在算式里加一个会随时间变化的系数让曲线每帧都微微变形再把这些帧连起来一颗怦怦跳动的心就出现了。仓库MatLab/002里的案例正是这么做的它在算式里塞进一个不断增大的变量a循环一百次、逐帧保存成 GIF于是有了这张动图调参的过程往往充满惊喜。我第一次做动画时把频率系数设得太大结果心形像发了疯一样乱颤把振幅调小又变成了半死不活的躺平心。后来一点点试才找到那种刚好让人心跳加速的节奏。这就是为什么我一直建议你亲手改参数去体会——同样一行代码0.5和5之间的差别是任何文字都描述不清的。给你一个小口诀频率管节奏、振幅管幅度、相位管起点。想让它跳得优雅就先从慢慢改、每次只改一个数开始。从平面到立体捧起一朵3D玫瑰二维的曲线再漂亮也只是画在纸上。数学可视化的下一步是把图形从纸面托起来变成可以旋转、可以打光的立体模型。仓库的Python/005目录里藏着一个经典的三维心形。它用到的思路和刚才完全一样只是把一个点变成了空间中的一个点除了左右、上下还多了一个前后方向。代码里那行长长的隐函数算式本质上只是说满足这个条件的三维坐标就属于心形表面。看到Python/005/img/eg.jpg里那颗由红色粒子点构成的 3D 心形了吗它就是这样被算出来的如果你想挑战更有成就感的东西一定要试试Python/004里的玫瑰花。它把花瓣想成一圈圈绕在花茎上的曲面每一圈都通过一组参数决定这一层多宽、这一瓣多大、往哪个方向弯。当你看到代码窗口里那朵层层叠叠的 3D 玫瑰被渲染出来你会真切地感受到数学可视化不只是画图更像是在用坐标和颜色雕刻一件作品。立体作品有一个共同的思考套路我建议你记住先想清楚这个物体由哪些面组成再想每个面怎么用坐标表达最后考虑用什么颜色和光照让它好看。拆解清楚了再复杂的模型也能一步步做出来。新手最容易踩的四个坑这一路我也摔过不少跟头把最常见的四个问题列出来帮你省下大把时间Q1为什么我的图形这么丑歪歪扭扭不成形状多半是坐标轴比例不对。横轴和纵轴的刻度单位不一致圆形就会被拉成椭圆。给绘图加上等比例设置比如plt.axis(equal)问题立刻消失。Q23D 图形渲染特别慢转都转不动网格太密了。3D 可视化里的网格点越多、表面越精细计算量就越大。先用低分辨率把形状跑通确认没问题再调高精度这是性价比最高的做法。Q3动画导出后一顿一顿的很不流畅要么是帧与帧之间的参数变化太大了要么是帧率太低。试着把每帧的增量改小、帧数加多动画就会顺滑很多。Q4照着代码敲为什么报错九成是括号或引号没配对。数学可视化代码里嵌套的函数特别多检查一遍成对的括号能救回你半小时的青春。创意发散给作品打上你的专属印记把基础案例跑通之后就到了最好玩的环节——让它变成你的作品。换一套配色。数学可视化的一大乐趣就是玩颜色。除了默认的红色试试深红到粉白的渐变、黑底配荧光粉、或者蓝紫色系的星空心形。仓库Python/007里的粒子心形就是靠颜色渐变做出了梦幻的闪光感那个output文件夹里的每一帧都值得翻一翻能给你不少配色灵感改一个参数。心形的胖瘦、玫瑰的花瓣数、跳动的快慢全藏在参数里。你可以像调音师一样把每个参数都拨一遍记录下哪个数字配出哪种气质。组合多个图形。让一颗大心形身边环绕一圈小心形或者在心形里种上一朵玫瑰。图形之间的组合往往能碰撞出单张图完全做不到的故事感。加一点交互。仓库Python/001里甚至有一个点按钮表白的小游戏把图形和鼠标点击结合起来作品的趣味性立刻翻倍。如果你是 Web 方向Web/目录下还有大量网页版的表白页面思路同样值得借鉴。现在轮到你了数学可视化的美妙之处在于它的门槛低到任何人都能画出第一个心形上限又高到足以承载无限的想象力。从跑通第一段代码到调出第一颗跳动的心再到捧起第一朵 3D 玫瑰——每一次原来如此的惊叹都是你亲手赚来的。如果你想看看别人的创意或者把自己的作品放进去可以用git clone https://gitcode.com/gh_mirrors/aw/Awesome-Love-Code把项目拉下来照着Python/、MatLab/这些目录里的案例一个个试过去。公式是冷的但表达可以很暖。现在打开你的编辑器让第一行代码替你开口吧——你会爱上这种用数学语言说我爱你的方式。【免费下载链接】Awesome-Love-Code表白代码收藏馆~谁说程序猿不懂浪漫❤️项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-Love-Code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表