ToB企服应用市场:ToB评测及商务社交产业平台
标题:
manim边学边做--弧形多边形
[打印本页]
作者:
立山
时间:
2024-9-15 15:34
标题:
manim边学边做--弧形多边形
弧形多边形
是一种联合了
圆弧
和
多边形
的图形,这类几何图形在设计中应用非常广泛。
好比在家居设计中,看看家里的沙发,餐桌和座椅等,它们的边角,靠背等地方都是弧形的设计,这种设计有用柔化了室内空间,使整体氛围更加和谐自然。
尚有景观和建筑设计中,弧形多边形常被用于门路规划、花坛布局等,
特别是儿童游乐的区域,通过自由的弧线设计,不仅符合儿童活泼好动的天性,还能激发他们的想象力和创造力。
在艺术设计领域,弧形多边形用的就更多了,在图形、标记、海报等的创作中,弧形多边形独特的形状和视觉效果能够吸引观众的注意力,传达出设计者的意图和情感。
manim中提供了2个模块来构造弧形多边形:
ArcPolygon:通过
极点和弧度
来构造弧形多边形
ArcPolygonFromArcs:通过
圆弧
来构造弧形多边形
这两个模块的主要区别在于构造弧形多边形的
过程不同
,一个是通过极点,一个是通过圆弧,
最终构造出的弧形多边形并没有什么不同。
1. 主要参数
ArcPolygon的主要参数有:
参数名称
范例
说明
verticesPoint3D多边形的极点列表anglefloat统一设置所有弧的弧度radiusfloat统一设置所有弧的半径arc_configlist[dict]分别设置每个弧的弧度极点vertices确定之后,angle和radius设置每两个极点之间弧的弯曲程度。
angle和radius参数只能使用一个,同时使用的话,angle参数无效。
angle和radius是统一设置多边形所有弧的弧度,arc_config可以设置每个弧拥有不同的弧度。
ArcPolygonFromArcs的参数比较简单。
参数名称
范例
说明
arcsArc弧形的集合注意,如果参数传入的弧形列表arcs不能构成一个闭合的多边形,
那么,manim会主动把arcs中最后一个弧形的终点与第一个弧形的起点用直线毗连起来,形成闭合的多边形。
这两个模块(ArcPolygon和ArcPolygonFromArcs)构造的弧形多边形没有区别,在制作动画时根据实际情况选用不同的模块。
如果有极点信息,那么用ArcPolygon来构造多边形,如果有各个圆弧的信息,那么用ArcPolygonFromArcs来构造多边形。
2. 使用示例
2.1. 统一设置弧度
使用angle可以统一设置弧形多边形中每条边的弧度,弧度设置的越大,边的弯曲度越大。
vertices = [UR, UL, DL, DR]
ArcPolygon(*vertices, angle=0)
ArcPolygon(*vertices, angle=60 * DEGREES)
ArcPolygon(*vertices, angle=120 * DEGREES)
复制代码
2.2. 统一设置半径
使用radius也可以设置弧形多边形中每条边的弯曲度,radius是指构成弧形的两个极点所在圆的半径。
所以radius越大,边的弯曲度越小。
vertices = [UR, UL, DL, DR]
ArcPolygon(*vertices, radius=10)
ArcPolygon(*vertices, radius=1)
ArcPolygon(*vertices, radius=2)
复制代码
2.3. 分别设置每个弧
参数angle和radius是用来统一设置所有边的弯曲度的,
如果我们想给弧形多边形的每条边设置不同的弧度,就要使用arc_config参数。
vertices = [UR, UL, DL, DR]
arc_config = [
{"angle": 30 * DEGREES},
{"angle": 90 * DEGREES},
{"radius": 2},
{"radius": 5},
]
ArcPolygon(*vertices, arc_config)
复制代码
通过arc_config不仅可以设置每个弧的弯曲度,也可以设置它们线的粗细,颜色等等属性。
2.4. 通过圆弧构造多边形
ArcPolygonFromArcs是通过一系列圆弧来构造多边形的,所以不需要angle和radius这些参数了。
因为构造每个圆弧时已经设置好圆弧的弯曲度和相干属性了。
arc1 = ArcBetweenPoints(
angle=PI / 6, # 30度
color=BLUE,
)
arc2 = ArcBetweenPoints(
angle=PI / 3, # 60度
color=GREEN,
)
arc3 = ArcBetweenPoints(
angle=PI / 2, # 90度
color=YELLOW,
)
arc4 = ArcBetweenPoints(
angle=2 * PI / 3, # 120度
color=RED,
)
ArcPolygonFromArcs(arc1, arc2, arc3, arc4)
复制代码
2.5. 缺失圆弧时的多边形
上面的示例中,使用ArcPolygonFromArcs构造多变形时,传入的4个圆弧合起来正好是闭合的。
如果传入的圆弧不是闭合的会怎么样呢?
ArcPolygonFromArcs会主动将不闭合部门用直线相连,
也就是前一个圆弧的终点和下一个圆弧的起点用直线相连,最终构成一个闭合的多边形。
arc1 = ArcBetweenPoints(
angle=PI / 6, # 30度
color=BLUE,
)
arc3 = ArcBetweenPoints(
angle=PI / 2, # 90度
color=YELLOW,
)
ArcPolygonFromArcs(arc1, arc3)
复制代码
缺失的部门就是上面白色直线毗连的部门。
3. 附件
文中完整的代码放在网盘中了(arc_polygon.py),
下载地点:
完整代码
(访问密码: 6872)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4