manim
未读
在 Manim 中,Arc 类用于绘制圆弧,是几何图形绘制中常用的对象之一。以下是详细的用法说明:
1.基础圆弧我们来看下面的代码示例
12345678from manim import *class BasicArc(Scene): def construct(self): # 创建一个默认圆弧(90度) arc = Arc() self.play(Create(arc)) self.wait()
然后是演示的效果
参数说明
123456# 参数说明:# radius: 圆弧的半径# start_angle: 圆弧开始的弧度# angle: 圆弧的高度(2*半径)# num_components: 组成弧的片段,这个值越大,弧越圆滑# arc_cente: 圆弧对应的圆心位置
2.画一个半圆来看实例代码
1234567891011121314from manim import *class ArcParameters(Scene): def construct(self): # 常用参数 ...
manim
未读
莫比乌斯环是一种拓扑学结构,它只有一个面和一个边界,可以用一根纸条扭转成180度后,两头再粘接起来,就形成了莫比乌斯环,它是将正反面统一为一个面。
如果沿着莫比乌斯环的中间剪开,将会形成一个比原来的莫比乌斯环空间大一倍的环,如果再沿着这个环的中间剪开,将会形成两个一样的,并具有正反两个面的环,而且这两个环是相互套在一起的。
莫比乌斯环沿着中线剪开,第一次,可以得到一个更大的环;第二次及以后,每次都会得到两个互相嵌套的环,中间永远不会断开,这也是莫比乌斯环的神奇之处。
平常的应用也很多,如游乐园的过山车;莫比乌斯环也是一种死循环方式,不管你从莫比乌斯环的哪个点出发,走了一会后你会发现又回到了原点,所以说莫比乌斯环也是很恐怖的,永远的往返,无限,原地踏步。
下面我们来看效果代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465from manim import *import numpy as ...
geogebra
未读
我们今天来做一个正六面体的侧面展开图,从互联网的资料来看,正六面体的侧面展开图共计11种,今天我们来用Geogebra来实现这个过程,我的制作版本不是最新版6,而是经典版5,主要因素就是对Geogebra6的视图区认识不足,代数区、绘图区、3D绘图区不能够同时展示出来,日后技术提升了在重新做。
1.创设变量首先我们在绘图区内输入一个滑动条
1k=滑动条(0,1,0.01)
这个滑动条主要是用来控制侧面展开图的展开过程,所以在增量上设置的小一些,使得侧面展开图展开的时候会更加思华一些,接下来我们继续添加一个滑动条
1n=滑动条(1,11,1)
2.创建正六面体这个滑动条的目的,主要是用来控制正方体侧面展开图的11中展开方式,也就是每一种展开图,对应这个滑动条产生的一个值。所以这个滑动条的增量为单位整数1.
1A=(0,0,0)
1B=(1,0,0)
1C=(1,1,0)
我们输入的虽然是点的坐标,但是无形之中也调控了正方体的大小,或者说侧面展开图单个面的大小。然后我们在指令区输入下面的代码,生成一个正六面体。
1a=正六面体(A,B,C)
除了上面分步骤输入指令生成正六面体 ...
manim
未读
今天我们来学习一下 Manim 中如何过直线外一点做一条直线的垂线,其实很多时候,Manim中的直线就是一条线段,如果没有特殊的设置,就是由两个点确定的一条线段,过一点做已知直线的垂线,用到了新的几何函数方法get_projection()。
1.代码示例get_projection() 是 Manim 中一个非常重要的几何方法,用于计算一个点在直线(或线段)上的投影(垂足)。我们先来看代码,
12345678910111213141516171819202122232425262728from manim import *class PerpendicularLine1(Scene): def construct(self): # 创建一条线段 line = Line(start=LEFT*2, end=RIGHT*2, color=BLUE) point = UP + RIGHT*0.5 # 外部一点 # 找到在线段上的投影点 projection = line.get_projecti ...
manim
未读
在Manim中,axes.plot() 是 Axes 类 的一个方法,用于绘制函数曲线。它根据给定的函数和定义域生成对应的点,并将它们连接成平滑的曲线。
1、基本语法123456axes.plot( function: Callable[[float], float], x_range: Sequence[float] = None, use_smoothing: bool = True, **kwargs) -> ParametricFunction
function: 一个以 x 为自变量、返回 y 值的函数
x_range: x 的取值范围,格式为 [x_min, x_max, step](可选,默认使用坐标轴范围)
use_smoothing: 是否平滑连接点(默认为 True)
kwargs: 其他图形属性参数(如颜色、线宽等)
2、基础示例2.1. 绘制简单函数先创建坐标系,然后绘制一个sin(x)的函数。
1234567891011121314151617181920212223from manim import *class P ...
manim
未读
我们在使用Manim制作数学动画的时候,多数会用到点的移动问题,今天我们就来介绍如何制作一个动点,关于点的介绍,大家可以参考博客中的其他文章,这篇文章重点介绍如何移动一个点,来看下面的介绍。
1使用move_to()移动点我们使用.move_to(),可以让 Dot 移动到另一点,配合动画使用:
12345678from manim import *class DotMoveExample(Scene): def construct(self): dot = Dot(point=LEFT * 2, radius=0.5) self.add(dot) self.play(dot.animate.move_to(RIGHT * 2)) self.wait()
2.使用.move_to() + 轨迹函数我们还可以使用.move_to() + 轨迹函数的方式,让 Dot 沿着某个路径动:例如从 (0,0) 移动到 (2,3)。
123456789from manim import *class PathExample(Scene): ...
geogebra
未读
今天想用geogrebra做一个简单的数学课件,结果发现截图之后顶点字母太小,可是找了找也没有找到如何设置顶点字母的大小,虽然我们可以在设置里设置字体的大小,但是所有的字体都在增大,界面变得有不美观,咨询了一下互联网的AI先生,给出了相关的设置方法,感觉给出的方法挺好用的。
一.用latex设置
GeoGebra支持脚本语言也支持Latex!
因此可以用latex来设置标签大小。
具体方法就是,点击这个字母之后,鼠标不要动,然后右键,打开标签的属性。在标题里输入latex语句,如下面的代码
1$\Huge{A}$
此语句中的Huge可以更换成图片,大家可以查看“Latex下字体大小命令比较”中的其他字体的大小
二.设置标题同样是在顶点字母的位置,鼠标右键,选择属性设置,
在顶点字母的标题中,使用如下的标题指令
1$ \scalebox{5} {%n} $
其中的数值,可以调整字体的大小,代码不是很了解,正在学习中。今天给大家分享的这两个设置字母字体大小的方法,其实都是通过代码来设置字体大小,只要数量掌握这两句代码,一 ...
我们今天用manim来创建一个正方形,同时给创建的正方形添加对应的定点标签,先来看下面的Manim代码创建过程
1.创建矩形ABCD
来分析下面的代码,主要是用来创建矩形ABCD,没有添加顶点的标签
123456789from manim import *class RectangleABCD(Scene): def construct(self): # 创建矩形 rect = Rectangle(width=5, height=3, color=BLUE) rect.set_fill(BLUE, opacity=0.5) self.play(Create(rect)) self.wait(0.5)
下面是代码产生的视频效果
我们来分析看里面的代码是如何编写的
1rect = Rectangle(width=5, height=3, color=BLUE)
1Mobject = Rectangle(属性1,属性2,……属性)
期中,Rectangle是Manim中用于绘制矩形的多边形类,继承自Po ...
manim
未读
在Manim 中的RegularPolygram中用于生成具有规则间距顶点的“广义正多边形”,例如星形、复合等边多边形等,其关键参数如下在下面会注意介绍。
1.概念与核心参数1.1RegularPolygram
**num_vertices (int)**:顶点总数(必填)。
**density (int, 默认=2)**:步长,表示“每隔多少个顶点连一次线”。例如 density=2 常用于绘制五角星;当 density=1 时等价于正多边形。
**radius (float, 默认=1)**:外接圆半径,控制大小。
**start_angle (float 或 None, 默认=None)**:起始顶点相对 x 轴正向 的角度,用于旋转图形。
kwargs:其他样式参数(如 color、fill_color、fill_opacity、stroke_width 等)。
1.2与相近类的区别:
Polygon:由一组顶点顺序连线并闭合,顶点可任意。
RegularPolygon:正 n 边形,顶点等距分布,无跳跃连接。
Polygr ...
geogebra
未读
在GeoGebra指令里面有一个工具图标(ToolImage)的指令,其指令格式为:
1工具图标( <数字> )
1工具图标( <数字>, <点> )
1工具图标( <数字>, <点>, <点> )
工具图标(<数字>)即在绘图区坐标原点创建一个32×32像素的图标,例如我们在里面输入523,
则会在显示区域内出现一个类似圆柱的图标,
工具图标( <数字>, <点> ),在绘图区创建工具图标的图像,并附着在给定的点上,例如我们在指令框输入
1工具图标( 523, A )
这样插入的图标会吸附在A点上,随着A点的变化而变化。
工具图标( <数字>, <点>, <点> ),也就是说如果我们在指令框中输入**工具图标(523,A,B)**,
在绘图区创建工具图标的图像,并置于两个给定的点为边的正方形的一侧。
插入的图标会随着线段AB的变化而变化,但是总会吸附在线段AB的一侧。顺便说一下工具图标中数字对应的图标,看下面的截图
geogebra
未读
今天给大家分享一个物理课件,轮子上的点的轨迹,主要涉及滑动条、按钮和复选框,当然也涉及到一些按钮的脚本,分享这个课件的制作过程,主要是练习自己复原一个Geogebra制作课件的过程,总结经验和学习经验。先来看做好的课件的截图
下面我们来看课件的制作过程,如果没有特别说明,所有的指令基本上都是直接在输入框中输入的,您只需要复制粘贴代码就可以,涉及到滑动条的问题,指令需要填写的内容太多,需要在工具栏中找到滑动条之后进行手动添加,涉及到需要截图的地方,会有截图说明。
1.添加变量isStart,用于判断开始还是暂停计时
1isStart=false
2.添加变量dt,表示时间间隔
1dt=0.05
3.添加变量t,表示时间
1t=0
4.添加滑动条speed,最小值和最大值的范围是1 ∼ 10,增量为1,如截图所示,控制动画速度
5.添加滑动条N,最大值和最小值的范围是0 ∼ 1/dt,增量1,计时用,速度用滑动条speed控制,并在N的update事件中添加脚本
1SetValue(t,t+dt)
6.添加《on/off》按钮,用于控制开始或暂停,并在其 ...
manim
未读
很多时候,在Manim中,我们需要创建一个多边形,其实我们可以使用Manim创建很多的几何图形,RegularPolygon 是用于创建正多边形的几何对象,属于 VMobject 类。以下是关键信息整合。
1.基本用法RegularPolygon 通过指定边数 n 和圆半径 radius 创建正多边形,最重要的参数就是变数 n。例如:
1234567from manim import *class Example(Scene): def construct(self): pentagon = RegularPolygon(n=5, radius=2) self.play(Create(pentagon)) self.wait(2)
上面的代码,就是利用RegularPolygon创建一个正五边形,radius是正五边形外接圆的半径。来看下面的视频
2.属性与扩展
颜色与填充 :支持 color(边颜色)和 fill_color(填充颜色),以及 fill_opacity(填充透明度)参数。
变换 :可通过 scale 方法调整大 ...
manim
未读
在Manim中,arrange() 是Mobject类的一个重要方法,用于自动排列多个对象,比如图形、文本等,让它们整齐地排列成一行、一列或其他布局。
1.基本语法1mobjects.arrange(direction=RIGHT, buff=0.2, aligned_edge=ORIGIN, center=True)
2.主要参数详解2.1. direction - 排列方向123# 水平排列(默认)objects.arrange(RIGHT) # 从左到右objects.arrange(LEFT) # 从右到左
123# 垂直排列objects.arrange(DOWN) # 从上到下objects.arrange(UP) # 从下到上
12# 对角线排列objects.arrange(RIGHT+DOWN) # 对角线排列
2.2. buff - 对象间距1objects.arrange(buff=0.5) # 间距0.5个单位
1objects.arrange(buff=2) # 间距2个单位
1objects.arrange(buff ...
谈起这篇文章,其实更多的是告诉新手朋友如何在 Hexo 博客里面完整的发布一篇博文,这里面主要是涉及到了分类的作用,有些时候分类的作用还是非常明显的不然文章没有哦归属感。下面来看教程:
1.添加收藏夹菜单
新建一个页面,命名为 favorite,命令如下:
1hexo new page favorite
然后就可以看到在source下多了一个favorite的文件夹,里面有一个index.md文件,在这里其实就是创建了一个分类的意思。
2.在菜单中添加链接
编辑主题的 _config.yml ,在 menu 中添加如下代码:
123- page: favorite directory: favorite/ icon: fa-star
当然了,每个主题的菜单位置不同,而且代码格式也稍微有区别,大家注意一下这个问题。
3.语言设置如果你用的时中文,即你使用的语言是 zh-CN,那么你就需要在themes主题下找到你安装的主题里找到languages文件夹,里面有个zh-CN.yml,用编辑器打开这个文件,添加favorite对应的中文翻译
1favorite: 收藏夹
大功告成 ...






