manim页面中不规则分割整个人页面。

界面中的分割方式

在信息设计中,我们常常需要通过分割设计的方式来对信息进行分组,界面中的分割方式大致分为三种:卡片、线条、留白。

界面中的分割方式主要可以分为以下几种:

一、根据规则进行分割:

  1. 规则网格分割

    • 特点:采用均匀的网格布局,所有单元格大小相同,常用于展示相似内容(如表格)。
    • 应用:数据展示、仪表盘、图标排列等。
from manim import *  class TableExamples01(Scene):  # 定义一个名为 TableExamples01 的场景  def construct(self):      # 定义场景中的构建过程  # 创建一个表格并设置其宽度和行列内容  t2 = Table(  [["This", "is a"],  # 表格的内容  ["simple", "Table."]],  row_labels=[Text("R1"), Text("R2")],  # 行标签  col_labels=[Text("C1"), Text("C2")],  # 列标签  top_left_entry=Text(" "),  # 左上角的位置,留空  include_outer_lines=True,   # 包含外部边框  arrange_in_grid_config={"cell_alignment": RIGHT},  # 单元格内容右对齐  )  # 将表格缩放至接近充满整个页面  #t2.scale(1.0)  # 根据需要调整缩放比例,这里保持为1,不缩放  # 设置表格的尺寸  #t2.auto_scale()  # 自动调整表格的尺寸  t2.set(width=12, height=6.8)  # 设置表格的尺寸  # 获取第二行第二列单元格,并将其设置为红色  red_cell = t2.get_cell((2, 2), color=RED)  t2.add(red_cell)  # 高亮显示第一行第一列的单元格,颜色为黄色  t2.add_highlighted_cell((1, 1), color=YELLOW)  # 创建一个组并添加表格  g = Group(t2)  # 将表格居中摆放  g.move_to(ORIGIN)  self.add(g)  # 在场景中添加组  

 运行结果

  1. 列式/行式分割

    • 特点:根据列或行的数量进行分割,适合于内容较多且有层级的情况。
    • 应用:导航栏、菜单、内容展示区等。

行式:

from manim import *  
import random  class TableExamples02(Scene):  # 定义一个名为 TableExamples02 的场景  def construct(self):      # 定义场景中的构建过程 self.camera.background_color = "#2F4F14" # 随机文本列表  random_texts = [  "Cut Cell", "Copy Cell", "Paste Cell Below",   "Delete Cell", "Split Cell", "Merge Selected Cells",   "Merge Cell Above", "Merge Cell Below",   "Clear Cell Output", "Clear Outputs of All Cells",   "Enable Scrolling for Outputs", "Disable Scrolling for Outputs",   "Undo Cell Operation", "Redo Cell Operation",   "Restart Kernel...", "New Console for Notebook"  ]  # 创建多条水平线和随机文本  for i in range(-8, 10, 1):  # 从 -8 到 8,步长为 2  horizontal_line = Line(start=LEFT * 8, end=RIGHT * 8, color=WHITE).shift(2.5 * UP + i * DOWN)  self.add(horizontal_line)  # 将每条线添加到场景中  # 随机选择一段文本  text = random.choice(random_texts)  text_mobject = Text(text, color=WHITE).next_to(horizontal_line, UP)  # 将文本放在横线的上方  self.add(text_mobject)  # 将文本添加到场景中  

二、根据不规则进行分割:

  1. 自由形状分割

    • 特点:根据内容需求和设计风格,采用不规则的形状分割,通常具有创意性和个性化。
    • 应用:艺术网站、社交媒体、创意作品展示等。
  2. 响应式分割

    • 特点:依据屏幕大小和用户行为动态调整分割方式,具有灵活性。
    • 应用:移动端应用、响应式网站设计等。
from manim import *  class InfiniteLines01(Scene):  def construct(self):  # 设置背景颜色  self.camera.background_color = "#2F4F14"  # 创建无限横向线  horizontal_line = Line(start=LEFT * 8, end=RIGHT * 8, color=WHITE).shift(2.8 * UP)  vertical_line = Line(start=DOWN * 8, end=UP * 8, color=WHITE)  # 创建文本并移动到横线的上方和竖线的左方的中间位置  t = Text("线性代数", font_size=36)  # 设置字体大小  t.move_to(UP * 3.2 + LEFT * 3)  # 调整位置到横线的上方和竖线的左方的中间  # 添加线条到场景  self.play(Create(horizontal_line))  self.play(Create(vertical_line))  # 添加文本到场景  self.play(Write(t))  self.wait(2)

 运行结果:

 不规则分割页面的布局:
实列1:
from manim import *  class InfiniteLines02(Scene):  def construct(self):  # 设置背景颜色  self.camera.background_color = "#2F4F14"  # 创建无限横向线  horizontal_line = Line(start=LEFT * 8, end=RIGHT * 8, color=WHITE).shift(2.8 * UP)  vertical_line = Line(start=DOWN * 8, end=UP * 8, color=WHITE)  # 创建文本并移动到横线的上方和竖线的左方的中间位置  t = Text("线性代数", font_size=36)  t.move_to(UP * 3.2 + LEFT * 3)  # 添加线条到场景  self.play(Create(horizontal_line))  self.play(Create(vertical_line))  self.add(NumberPlane())# 添加文本到场景  self.play(Write(t))  # 创建四个半径为1的圆  circles = []  for x, y in [(-3, 3), (3, 3), (-3, -3), (3, -3)]:  # 定义每个圆心的位置  circle = Circle(radius=1, color=BLUE)  # 创建圆  circle.move_to(RIGHT * x + UP * y)   # 移动到指定位置  circles.append(circle)  # 将圆添加到列表  # 添加圆到场景  for circle in circles:  self.play(Create(circle))  self.wait(2)  # 保持场景2秒

 实例2:
from manim import *  class InfiniteLines03(Scene):  def construct(self):  # 设置背景颜色  self.camera.background_color = "#2F4F14"  # 创建无限横向线  horizontal_line = Line(start=LEFT * 8, end=RIGHT * 8, color=WHITE).shift(2.8 * UP)  vertical_line = Line(start=DOWN * 8, end=UP * 8, color=WHITE)  # 创建文本并移动到横线的上方和竖线的左方的中间位置  t = Text("线性代数", font_size=36)  t.move_to([-3.505,3.5,0])  # 添加线条到场景  self.play(Create(horizontal_line))  self.play(Create(vertical_line))  # 添加文本到场景  self.play(Write(t))  self.add(NumberPlane())# 计算每一块的中心点并绘制圆  centers = [(-3.505, 3.5), (3.505, 3.5), (-3.505, -0.5), (3.505, -0.5)]  # 各块的中心点坐标  circles = []  for x, y in centers:  circle = Circle(radius=0.25, color=BLUE)  # 创建半径为1的圆  circle.move_to(RIGHT * x + UP * y)  # 移动到中心点  circles.append(circle)  # 添加到圆的列表  # 添加所有圆到场景  for circle in circles:  self.play(Create(circle))  self.wait(2)  # 保持场景2秒

三、有规则与不规则分割的特点比较:

  • 有规则分割特点

    • 结构清晰,易于理解。
    • 适合标准化内容展示,有助于用户快速获取信息。
  • 不规则分割特点

    • 视觉吸引力强,能够突出特定内容。
    • 提供更多的创造性,灵活性高,但可能会在信息传递上造成一定的混乱。

总的来说,选择分割方式时需根据界面的目标、用户需求和内容特性进行合理设计。

from manim import *  class SplitPage(Scene):  def construct(self): self.camera.background_color = "#2F4F14" # 创建无限横向线  horizontal_line = Line(start=LEFT * 8, end=RIGHT * 8, color=WHITE).shift(3 * UP)  vertical_line = Line(start=DOWN * 8, end=UP * 8, color=WHITE)  # 创建一个矩形代表页面  page = Rectangle(width=6, height=4, color=WHITE)   page.move_to(ORIGIN)  # 将页面移动到正中心  # 显示页面和线  self.play(Create(horizontal_line))  self.play(Create(vertical_line))   self.play(Create(page))  # 将页面均匀分成两块  left_half = Rectangle(width=3, height=4, color=WHITE).move_to(LEFT * 1.5)  right_half = Rectangle(width=3, height=4, color=WHITE).move_to(RIGHT * 1.5)  # 显示分开的两块  self.add(right_half,left_half)  # 创建不规则的分割线,首先将右边的部分分割成三个不规则的部分  line1 = Line([3, -2, 0], [3, 2, 0], color=BLACK) # 垂直分割线  line2 = Line([3.5, -1.5, 0], [3.5, 1.5, 0], color=BLACK) # 另一条线  # 将分割线添加到场景中  self.play(Create(line1))  self.play(Create(line2))  # 创建右边的三个不规则部分  lower_shape = Polygon(  [3, -2, 0], [4, -1, 0], [3.5, -0.5, 0], color=YELLOW  ).set_fill(YELLOW, opacity=0.5).scale(3)  upper_shape = Polygon(  [3, 2, 0], [4, 1, 0], [3.5, 0.5, 0], color=BLUE  ).set_fill(BLUE, opacity=0.5).scale(3).  shift(6*LEFT+2*DOWN)# 将不规则部分添加到场景中  self.play(Create(lower_shape)) self.play(Create(upper_shape))  # 结束  self.wait(2)  # 要运行这个例子,请在终端中使用以下命令:  
# manim -pql <你的文件名.py> SplitPage
%manim -qm -v WARNING SplitPage

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1548861.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

游戏如何对抗改包

游戏改包是指通过逆向分析手段及修改工具&#xff0c;来篡改游戏包内正常的设定和规则的行为&#xff0c;游戏包被篡改后&#xff0c;会被植入/剔除模块进行重打包。 本期图文我们将通过实际案例分析游戏改包的原理&#xff0c;并分享游戏如何应对改包问题。 安卓平台常见的改…

大数据的挑战是小文件

小文件可能会给存储平台及其支持的应用程序带来大问题。在 Google 上搜索 “small files performance” 会产生 2M 的结果。这篇博文将更深入地研究小文件问题&#xff0c;深入研究其根源并总结解决方案。 问题陈述 出于本讨论的目的&#xff0c;小文件通常被视为小于 64 KB …

蓝桥杯【物联网】零基础到国奖之路:十二. TIM

蓝桥杯【物联网】零基础到国奖之路:十二. TIM 第一节 理论知识第二节 cubemx配置 第一节 理论知识 STM32L071xx器件包括4个通用定时器、1个低功耗定时器&#xff08;LPTIM&#xff09;、2个基本定时器、2个看门狗定时器和SysTick定时器。 通用定时器&#xff08;TIM2、TIM3、…

32 C 语言指针的长度与运算(指针加减整数、指针自增自减、同类型指针相减、指针的比较运算)

目录 1 指针的长度 2 指针与整数的加减运算 3 指针自增与自减 4 同类型指针相减 5 指针的比较运算 6 测试题 1 指针的长度 在 C 语言中&#xff0c;sizeof 运算符可以用来计算指针的长度。指针的长度实际上与指针所指向的数据类型无关&#xff0c;而是与系统的位数&…

怎么通过AI大模型开发一个网站?

目录 一、提示词与AI输出 二、网站效果 以前不会代码开发&#xff0c;写网站是不可能的事情&#xff0c;现在有了AI&#xff0c;一切都有了可能。以下是我通过通义千问大模型开发的简单网站。 一、提示词与AI输出 提示词1 你是python程序员&#xff0c;我有一个大的需求&am…

Charles(青花瓷)抓取https请求

文章目录 前言Charles&#xff08;青花瓷&#xff09;抓取https请求 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&…

QTreeview model过滤

QTreeview model数据过滤&#xff1a;大小写区分&#xff0c;对列过滤&#xff0c;对子对象过滤 示例&#xff1a; 需要自定义QSortFilterProxyModel, //自定义过滤model mProxyModel new TreeFilterProxyModel(this); //添加treeview当前model mProxyModel->setSource…

re轻松拆分四则运算expression(^从头匹配、(?:xxxx)非捕获组、| 交替运算符联合演习)

与ai对抵聊“算式匹配”&#xff0c;发现^从头匹配、(?:xxxx)非捕获组、| “交替”运算符联合使用的妙处。 (笔记模板由python脚本于2024年09月27日 18:35:32创建&#xff0c;本篇笔记适合喜欢python喜欢正则的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;…

云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 王 峰 | 阿里云智能集团研究员、开源大数据平台负责人 李 钰&#xff5c;阿里云智能集团资深技术专家 范 振&#xff5c;阿里云智能集团高级技术专家 李劲松&#xff5c;阿里云…

Flume入门到实践--Flume的安装与基础概念与安装实战

在当今大数据时代&#xff0c;有效管理和处理海量日志数据对于企业获取洞察和保持运营效率至关重要。为此目的设计的强有力工具之一是 Apache Flume。本文将带您探索Flume&#xff0c;了解其功能、安装方法以及一些实际用例&#xff0c;以展示其在处理日志数据方面的有效性。 …

逻辑回归(中):数学公式学习笔记 LaTeX 版

背景 闲来无事翻了一下之前买的一个机器学习课程及之前记录的网络笔记&#xff0c;发现遇到公式都是截图&#xff0c;甚至是在纸上用笔推导的。重新整理一遍之前逻辑回归函数的学习笔记&#xff0c;主要是为了玩一下 LaTex 语法&#xff0c;写公式挺有意思的。 整理之前三篇笔…

机器学习-SVM

线性感知机分类 支持向量机 线性感知机&#xff08;Perceptron&#xff09; 感知机是线性二值分类器。 注意&#xff1a;什么是线性&#xff1f;线性分割面就是&#xff0c;就是在分割面中&#xff0c;任意两个的连线也在分割面中&#xff0c;这个分割面&#xff0c;就是线…

debian linux 只安装mysql client

查询系统版本 执行cat /etc/os-release 可以看到是debian11 rootservice-headquarters-hg-self-data-report-844ccf78b-6ls7t:/mysql#cat /etc/os-release PRETTY_NAME"Debian GNU/Linux 11 (bullseye)" NAME"Debian GNU/Linux" VERSION_ID"11&quo…

DOM元素导出图片与PDF:多种方案对比与实现

背景 在日常前端开发中&#xff0c;经常会有把页面的 DOM 元素作为 PNG 或者 PDF 下载到本地的需求。例如海报功能&#xff0c;简历导出功能等等。在我们自家的产品「代码小抄」中&#xff0c;就使用了 html2canvas 来实现代码片段导出为图片&#xff1a; 是不是还行&#xff…

【STM32】SPI回顾

一、定义 SPI是Motorola首先提出的全双工四线同步串行外围接口&#xff0c;采用主从模式&#xff08;Master-Slave&#xff09;架构。 二、单机与多机通信 4线SPI器件有四个信号&#xff1a;时钟(SPI CLK, SCLK)、主机输出从机输入(MOSI)、主机输入从机输出(MISO)、片选(CS/N…

简单理解C++在C的基础上的改变

1.C语言的一些不足 我们首先看下面用C语言实现栈 #include<stdio.h> #include<assert.h> #include<stdlib.h> typedef int StackDateType; typedef struct Stack {StackDateType* _ps;size_t _size;size_t _capacity; }Stack; void StackInit(Stack* ps) {…

Qt_网络编程

目录 1、Qt的UDP Socket 1.1 用Udp实现服务器 1.2 用Udp实现客户端 2、Qt的TCP Socket 2.1 用Tcp实现服务器 2.2 用Tcp实现客户端 3、Qt的HTTP 3.1使用Qt的HTTP 结语 前言&#xff1a; 网络协议是每个平台都必须遵守的&#xff0c;只是不同的平台所提供的网络API不…

工业缺陷检测——Windows 10本地部署AnomalyGPT工业缺陷检测大模型

0. 引言 在缺陷检测中&#xff0c;由于真实世界样本中的缺陷数据极为稀少&#xff0c;有时在几千甚至几万个样品中才会出现一个缺陷数据。因此&#xff0c;以往的模型只需在正常样本上进行训练&#xff0c;学习正常样品的数据分布。在测试时&#xff0c;需要手动指定阈值来区分…

实现语音合成的三种方法:HTML5 Web Speech 、speak-tts、百度语音合成

1. 使用HTML5 Web Speech API 1.1 使用方法 window.speechSynthesis 是HTML5 Web Speech API的一部分&#xff0c;是浏览器原生提供的文本转语音功能。它允许开发者在网页上通过JavaScript调用&#xff0c;将文本转换为语音进行播放。 https://developer.mozilla.org/zh-CN/d…

渗透测试--文件上传常用绕过方式

文件上传常用绕过方式 1.前端代码&#xff0c;限制只允许上传图片。修改png为php即可绕过前端校验。 2.后端校验Content-Type 校验文件格式 前端修改&#xff0c;抓取上传数据包&#xff0c;并且修改 Content-Type 3.服务端检测&#xff08;目录路径检测&#xff09; 对目…