manim
未读
在Manim中,ValueTracker 是一种用于动态追踪和更新对象位置或属性的强大工具,一般情况下,我们可以用它来做一个动点的动态效果,例如把某个函数图像当作运动路径,在这个函数图像上做路径运动,先来看下面的动态效果:
以下是实现上面动画效果的代码,我们可以仔细的分析其中的过程,先从简单的代码说起。
12345678910111213141516171819202122from manim import *class DotOnGraph(Scene): def construct(self): # 定义一个坐标系 axes = Axes() self.play(Create(axes)) self.wait(2) # 定义一个二次函数 graph = axes.plot(lambda x: x**2-3, color=BLUE) self.play(Create(graph)) self.wait(2) # 定义一个随 x 改变而移动的 ...
manim
未读
今天我们来用Manim来做一个直角三角形,在 Manim的数学动画库中,Triangle 是一个常用的几何图形类,用于创建和操作三角形。但是默认的 Triangle 创建的三角形其实是一个等边三角形,这个等边三角形的中心在屏幕的中心,所以如果我们使用Triangle创建三角形,不会创建出直角或者钝角的三角形,其实,我们创建一个直角三角形,默认的是计算好顶点坐标之后,才进行创建。
1.使用Polygon1.1基本参数在Manim 中,Polygon 是一个用于创建多边形的类,用于创建任意边数的多边形,可以自定义顶点、边、颜色、填充等属性,但是Polygon 必须提供至少三个顶点的参数。
1Polygon([x1, y1, z1], [x2, y2, z2], [x3, y3, z3], ...)
我们来看示例
12345polygon = Polygon( [-2, -1, 0], # 顶点1 [2, -1, 0], # 顶点2 [0, 2, 0], # 顶点3)
1.2.其余参数1.2.1.边框颜色12color=BLUE, ...
我们在使用 Hexo 博客程序搭建博客网站的时候,最难的问题可能就是图片和附件的保存,虽然互联网上给出了很多的解决方案,例如使用腾讯或者阿里云的存储空间来存放图片附件。但腾讯或者阿里云的云存储是需要按照流量付费的,甚至上传流量都需要付费,虽然购买时价格低一些,但如果网站流量大或者遇到恶意刷流量的情况,估计小站长们承受不起。
于是便想到使用物美价廉的虚拟主机,用虚拟主机存放图片,一般感觉比图床要便利很多。而且 Hexo是可以通过 ftp 的方式部署网站的,于是找了份便宜稳定的虚拟主机,看看这次能不能成功,如果成功了,就不用每天为存储附件和图片,以及网站服务器发愁了。先来看插件的安装:
1.插件安装说明:这次使用的依然是良心插件 hexo-deployer-ftpsync,大家需要提前安装按一下,运行下面的代码
1npm install hexo-deployer-ftpsync --save
如果不能够运行,就使用
1npm install hexo-deployer-ftpsync
安装之后就可以在网站的根目录里添加ftp的部署代码:
2.添加部署代码:1234567891011 ...
Hexo 构建博客还是比较容易的,在完成博客搭建之后,作为博客最重要的组成部分,其实就是博客根目录下的 _config.yml 文件,想来大家都一定很熟悉,主要是对 Hexo 博客站点的相关配置内容,下面开始进行分段详细的说明:
1.站点配置这个主要是网站的基本配置,需要按照自己的网站设置来填写。
12345678# Sitetitle: # 网站标题subtitle: # 网站子标题description: # 网站描述keywords: # 网站关键词author: # 网站作者,也就是您的名字language: # 网站使用的语言,这需要注意:看你的主题文件下的language包下有什么语言包就些什么。后面详细说明! timezone: # 网站时区。Hexo 预设使用您电脑的时区。
2.网址配置这个地方一般根据情况修改 url 和 root 即可。
12345678# URLurl: ...
RSS(Really Simple Syndication) 简易信息聚合,在互联网上被广泛采用的内容包装和投递协,是一种描述同步网站内容的格式,使用xml格式。当网站内容更新时可以通过订阅RSS源在RSS阅读器上获取更新的信息。大多数内容提供的网站都会提供RSS订阅的功能,方便用户去获取最新的内容。
本篇文章主要介绍怎么给自己的hexo博客添加RSS源,不过大家需要先注意,如果我们搜索 Hexo 博客的RSS,会发现两个RSS功能的npm包,分别是
1hexo-migrator-rss
和
1hexo-generator-feed
不过第一个包是从 RSS 迁移所有文章到source/_posts文件夹中的,第二个才是生成RSS文件的包,所以下面就介绍 hexo-generator-feed 的使用
插件安装:1npm install hexo-generator-feed
配置说明:然后在在_config.yml文件中配置该插件
12345678feed: type: atom path: atom.xml limit: 20 hub: con ...
robots协议也称爬虫协议,是指网站可建立一个 robots.txt 文件,来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而搜索引擎通过读取 robots.txt 文件来识别这个页面是否允许被抓取。
但是,这个 robots 协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视 robots.txt 文件去抓取网页的快照。
如果站长想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的 robots.txt文件中,或者使用 robots 元数据。
需要注意的是,robots协议并不是一个规范,而只是约定俗成,所以并不能保证网站的隐私。
下面我们来看 Hexo 博客如何添加robots.txt文件。
1.插件安装:首先我们需要再Hexo运行容器中运行如下代码,用来添加robots.txt的插件:hexo-robotstxt-multisitemaps,代码格式如下
1npm install hexo-robotstxt-multisitemaps --save
如果代码报错,就需要使用下面的代码
1npm install hexo-robots ...
manim
未读
今天我们来学习,使用Manim做出点在直线上运动的过程,这个动画效果还是很普遍的,一些初中数学几何作图问题,都会用到这个效果,估计很多朋友看到这篇文章也是因为想着学习点在直线上的运动的知识,不多说来看下面的代码
1.代码示例123456789101112131415161718192021222324252627282930313233from manim import *class SimpleMovingPoint(Scene): def construct(self): # 创建A点和B点 A = LEFT * 3 B = RIGHT * 3 # 创建线段AB line_AB = Line(A, B, color=BLUE) # 创建标签 label_A = Text("A").next_to(A, DOWN) label_B = Text("B").next_to(B, DOWN) ...
前段时间,偶然发现一篇博文,大意就是关于给 Hexo 博客的侧边栏添加一个倒计时,虽然此功能在一些 PHP 博客中已经是常见功能,但是在 hexo 博客之中还是比较少见的,难能可贵的是这个小功能可以非常方便的迁移到安知鱼主题上,详细操作过程如下:
1.添加、引用 JavaScript首先我们需要为日历卡片进行逻辑实现和样式定义,需要大家进入到博客根目录的主题文件夹内。
在博客主题的 /source/ 目录中的 js 文件夹中创建一个名为 countdown.js 的文件。在新建的 countdown.js 文件中添加以下代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 ...
manim
未读
Manim的动画效果虽然炫酷,但是也有一定的难度,对于新手来说,最好的方法就是多总结,今天给大家汇总一些动画常用的知识点,我自己也不是很懂就是简单的整理,留作日后思考查阅。
1.路径与轨迹1.1沿任意路径运动使用1MoveAlongPath(mobject, path, suspend_mobject_updating=False)
让对象沿任意VMobject路径运动,配合rate_func=linear可实现匀速。
要点:路径可以是直线、圆弧、贝塞尔曲线或由函数定义的参数曲线,如 ParametricFunction。
1.2保留运动轨迹使用1TracedPath(mobject.get_center, stroke_width=2, color=YELLOW)
自动绘制对象中心轨迹,便于观察运动规律。
路径采样与抖动优化:对复杂路径或高曲率区域,适当提高采样点可缓解“抖动”,如
1Circle().get_points_defining_boundary(n_samples=100)
1.3物理与向量场驱动使用1PhaseFlow(deriv_func, m ...
manim
未读
在Manim中,有些时候我们想延长一下动画播放的时间,注意,这个动画播放的时长,不是视频的时长,是视频中某个动画动作的时长,今天我们就来看这个问题如何调控,方便我们在做动画效果的时候,做到该快的快,该慢的慢,让视频变得更加有条理。
1.简单的self.play我们先来看代码
12345678910111213from manim import *class RuntimeTraceDemo(Scene): def construct(self): circle=Circle().move_to(LEFT) # 不同速度曲线 self.play( circle.animate.move_to(RIGHT*3), run_time=3, rate_func=smooth # 平滑开始结束 )
我们创建一个圆,创建的同时放到屏幕居左的位置,然后缓慢的将创建好的圆平移到屏幕的右边,大家注意run_time的参数问题,来看动画演示的效果
然后我们修改上面的代 ...
manim
未读
圆环是常见的几何图形,Annulus 是一个圆环形状,由两个同心圆组成,圆环控制文件位于 manim/mobject/geometry/arc.py 模块中,是 VMobject 的子类,具有填充和描边属性。
1.常见表达式1right = Annulus(参数1,参数2,……)
1right = AnnularSector(参数1,参数2,angle = ,……)
第二个圆环是带有一定角度的圆环
2.常见的参数12345678910Annulus( inner_radius=1, # 内圆半径 outer_radius=2, # 外圆半径 angle=TAU, # 角度(默认整圆) start_angle=0, # 起始角度 color=WHITE, # 颜色 fill_opacity=1, # 填充不透明度 stroke_width=0, # 描边宽度 **kwargs)
3.常见的变换3.1.创建圆环1ring = Annulus(inn ...
manim
未读
在Manim中,Polygon 类用于创建多边形。下面我将详细介绍它的使用方法、常见属性和示例。多边形也是常见的几何图形,理解多边形,有助于更好的理解其他的几何图形,下面我们来看基本的用法
1.基本用法我们先来看下面的代码
12345678from manim import *class BasicPolygon(Scene): def construct(self): # 创建三角形 triangle = Polygon([-2, -1, 0], [2, -1, 0], [0, 1, 0]) self.play(Create(triangle)) self.wait()
来看演示代码的视频效果
我们使用
1Polygon([-2, -1, 0], [2, -1, 0], [0, 1, 0])
坐标的形式,创建了个三角形,类似的参数
2.常见参数
2.1.传递多个点12polygon1 = Polygon([-1, 0, 0], [1, 0, 0], [0, 1, 0])
2.2.传递列表12points = ...
geogebra
未读
今天我们来用Geogebra做一个简单的时钟,这是分析的一个Geogebra高手的文章,做了适当的调整,我自己亲测成功之后写的文章记录,很多知识不是很了解就是单纯的做一个记录吧。
1.打开GeoGebra,作一个以O(0,0)为圆心、半径cR=5的圆,并设置好图形的颜色和线条的粗细,依次在代数区内输入以下代码,就可以实现这个过程。
1O = (0, 0)
1cR = 5
1圆周(O, cR)
2.利用点的序列命令将圆周 60等份:
1序列((cR; π / 2 - π / 30 k), k, 1, 60)
这里的点
1(cR; π / 2 - π / 30 k)
为极坐标,点的坐标中间用分号隔开,极径为cR(圆的半径),极角为π / 2 - π / 30 k,指以y轴正方向顺时钟旋转,
3.隐藏这些等分点,并利用线段的序列命令作出“分”的60个刻度,原作者的指令代码为
1序列(线段(mPs(k), 0.95mPs(k)), k, 1, 60)
但是输入这行代码的时候,我这里除了错误,不能够输入进去,提示是“未知的指令mPs”,其实在这个步骤之前,原作者应该 ...
manim
未读
你是否还在为数学动画中的物体运动轨迹不流畅而烦恼?是否想让几何图形按照自定义路径优雅移动?本文将系统讲解Manim路径系统的核心原理与实战技巧,从基础直线运动到复杂贝塞尔曲线,帮助你轻松实现专业级数学动画效果。
Manim的路径系统主要由几何路径定义和动画控制器两部分组成,路径系统架构包含三个层级:
基础路径:直线、圆、椭圆等基本几何路径
复合路径:由多个基础路径组合而成的复杂路径
参数化路径:通过数学函数定义的动态路径
1.基础路径实现最简单的路径动画是沿直线运动,Manim提供了多种内置方法:
123456789# 直线运动示例from manim import *class StraightPathExample(Scene): def construct(self): dot = Dot() self.add(dot) self.play(dot.animate.move_to(RIGHT * 3 + UP * 2), run_time=2) self.wait(2)
上述代码中,move_to方法自动 ...










