画出降维后的图片_有没有人能画出《三体》里太阳系被二维化的概念图?

按照 @小夫子老男孩 答案中视频的思路,我自己画了几幅星球降维的效果图。【manim】降维打击可视化_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

视频中把三维降至二维的思路,是先设计一个「二维降至一维」的方案,然后把三维中的两维按方案降至一维,另一维不变。

「二维降至一维」的方案,是「交错法」:把一个点在二维空间中的两个坐标写成小数形式,然后把各位小数交错,就得到它在一维空间中的坐标。比如,二维空间中的点 (0.123, 0.456),就会映射到一维空间中的点 0.142536。交错法可以得到二维正方形 [0,1)^2 与一维线段 [0,1) 之间的一个映射,这个映射几乎是一个双射。

有几点说明:如果这个「几乎」让你耿耿于怀,可以参看我下面这个答案是怎么构造出一个严格的双射的。不过在这个答案中我不想纠结这一点,也不想纠结区间到底是开还是闭。如何构造 [0,1] * [0,1] 到 [0,1] 的双射 ?​www.zhihu.com

2. 上面的交错法只能处理空间中坐标在 0 到 1 之间的部分,不能处理整个空间。视频中又用 sigmoid 函数在区间 (0,1) 与所有实数间建立了一个双射,解决了这个问题。为简便起见,我的这个答案就只考虑坐标在 0 到 1 之间的部分。

3. 视频中交错法使用的是十进制。为了让降维的结果更混乱、更壮观,我采用二进制。

在展示降维效果之前,我先来直观地演示一下,交错法是怎么把二维正方形 (0,1)^2 映射成一维线段 (0,1) 的。

首先把二维正方形切成四块,编号 1~4:

然后按顺序把它们排成一维:

再把每一小块切成四块,同样编号 1~4:

把每一小块中的四块也按顺序排成一维:

这个过程可以无限进行下去,于是正方形就可以被映射成一条没有宽度的线段。不过屏幕的分辨率是有限的,迭代 5 次之后就可以把一幅 32*32 的图片变成一幅 1*1024 的图片,这已经接近大多数屏幕的分辨率了。我下面的图示只迭代 4 次。

如果不采用二进制而是采用 k 进制,则在每一步中,不是切成 4 小块,而是切成 k*k 小块。显然二进制能把图片打得更乱。

下面演示星球降维的效果。

首先是二维降至一维。考虑二维空间中,以 (0,5, 0.5) 为中心、0.5 为半径的一颗圆形星球,我把它画成一幅 16*16 的图片:

把它用「交错法」降至一维后得到的 1*256 图片是这样的(纵向拉长了些以方便观察):

可见,「交错法」确实把原来的图片打乱了,星球的表面与内部混乱地交织在一起。

然后是三维降至二维。考虑三维空间中,以 (0.5, 0.5, 0.5) 为中心、0.5 为半径的一颗球形星球,用一幅 16*16*16 的「图片」表示。这个图片本身比较难画,我就不画了。按照视频中的思路,把其中的两维用「交错法」降至一维,会得到一张 16*256 的图片,这张图片如下:

在三维降至二维的过程中,有一个维度跟另外两个维度的地位不同,这让人不爽。于是我干脆画了四维降至二维的效果图:把四个维度分成两对,用「交错法」把每一对降至一维。考虑四维空间中,以 (0.5, 0.5, 0.5, 0.5) 为中心、0.5 为半径的一颗超球形星球,用一幅 16*16*16*16 的「图片」表示。它降至二维后,会得到一张 256*256 的图片,这张图片如下:

有没有很壮观!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

慧停车安装后显示服务器异常,智能停车场系统常见故障以及排除方法

原标题:智能停车场系统常见故障以及排除方法随着停车问题日益增多,很多住宅小区都基本安装了智能化的停车场系统,智能停车场系统一般由入口控制机、出口控制机、智能道闸、地感线圈、余位显示屏、图象识别设备、系统软件、管理工作站等组成。…

ios 自定义拍照页面_vivo X27只靠颜值和拍照吃饭?体验过后你也会被系统所折服...

说到vivo X27,相信很多小伙伴都会第一时间想到其帅气的颜值以及强悍的拍照!的确,就颜值来说,vivo X27凭借着升降式摄像头、零界全面屏、不凸出的后置三摄以及孔雀纹理的确称的上是2019年的最美旗舰;而拍照就更不用说了…

ipv4链路不通或服务器无响应,ping不通或丢包时如何进行链路测试?

Linux操作系统MTR介绍和使用安装MTR目前现有的Linux发行版本都预装了MTR,如果您的Linux云服务器没有安装MTR,则可以执行以下命令进行安装:CentOS 操作系统:yum install mtrUbuntu 操作系统:sudo apt-get install mtrMT…

consul 日志配置_Go语言微服务架构实战:第十一节 启动Consul

启动Consul安装配置好Consul以后,我们可以通过简单的命令启动consul。先来看最简单的启动方式:consul agent -dev在新终端中,执行如上操作。hongweiyulocalhost:~$ consul agent -dev > Starting Consul agent... > Consul agent runni…

vcm服务器如何修改端口,VCM2000是迈普协同通信解决方案的网管服务器.doc

VCM2000是迈普协同通信解决方案的网管服务器,提供友好的图形界面,功能强大、操作简单,能够对系统提供实时地配置、监控和管理。VCM2000采用采用组件化架构,同时集成网络管理和系统管理的优点,帮助用户实现网络运维从被…

chrome修改js数据怎么生效_chrome浏览器中 F12 功能的简单介绍

首先介绍Chrome开发者工具中,调试时使用最多的三个功能页面是:元素(ELements)、控制台(Console)、源代码(Sources),此外还有网络(Network)等。元素…

python split函数 空格_Python随笔29:Python基础编程练习题23~24

注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。Python编程Python基础练习题23:求三角形斜边上的高输入直角三角形两直角边a、b的值,输出斜边上的高,最后结果使用round(x, 2) 函数四舍五入保留2位小数。输…

docker run后台启动命令_Docker-第五部分:15个 Docker 命令

原文作者:Jeff Hale原文地址:https://towardsdatascience.com/15-docker-commands-you-should-know-970ea5203421翻译:付新圆在这篇文章中,我们将学习15个Dockers CLI命令。如果你还不了解Docker,请查看这个系列的其他…

ospf 环回口的路由条目_路由策略之重分发示例分析

重分发示例网络拓扑解析:如图,R1-R2运行OSPF10,通过各自F0/0口建立ospf邻居,R1上静态路由:ip route 192.168.11.0 255.255.255.0 13.1.1.2ip route 192.168.13.0 255.255.255.0 13.1.1.2然后在ospf10进程下&#xff0c…

我国常用的投影坐标系_我国常用坐标系和高程系详解

北京54坐标系(BJZ54)北京54坐标系为参心大地坐标系,大地上的一点可用经度L54、纬度M54和大地高H54定位,它是以克拉索夫斯基椭球为基础,经局部平差后产生的坐标系。新中国成立以后,我国大地测量进入了全面发展时期,再全…

miniconda3 安装numpy_OpenCV4在Ubuntu1810/1604安装

本文简要介绍OpenCV4在Ubuntu 1810上的安装。目前OpenCV最新的稳定版本是4.0.1,可以从官网下载并解压,也可以从github上获取最新源码进行安装安装依赖sudo apt-get install cmake build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg…

idea前端可视化_IntelliJ IDE 开发Java GUI 入门

本博客主要对java 的GUI相关知识进行简单的介绍和总结,整个博客按照创建一个java GUI的顺序进行介绍,期间穿插讲解用到的java Swing的布局、控件等相关知识。本博客所进行的讲解及工程的创建等,都是基于Intellij IDEA进行操作的。转载请注明出…

载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用

《0.6/1KV聚氯乙烯绝缘电力电缆载流量》《1~3芯额定电压0.6/1kv-1.8/3kv电缆载流量表》《YJV、YJY、YJV22额定电压在6/6、6/10kv电缆载流量》《常见BVVB型、BLVVB型、RVVB型电线载流量》《常见BV线载流量》《矿物质绝缘电缆载流量表》载流量数据表,是我们在日常工作…

android 虚拟键盘改变单个按键颜色_这款机械键盘很特别!一亿次按键寿命还有高颜值...

电脑主机要上RGB,那外设自然不能落下,虽说没有60%性能加成,用炫酷的灯光点亮桌面的感觉也是不错的。德国老牌外设品牌——冰豹(ROCCAT)2018年发布了Vulcan系列机械键盘,凭借着独特的设计和AIMO智能灯效颇受玩家好评。现在&#xf…

C++设计模式 #6 桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个变化的维度。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度 举个栗子 我们…

c99什么意思_C语言中-是什么意思啊?

展开全部->是一个整体,它是用于指向结构体、C中的class等含有子数据的指针用e5a48de588b662616964757a686964616f31333366303130来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么…

mysql排序加权_mysql多关键词查询相关匹配加权排序

SELECT id, title, SUM((CASE WHEN title LIKE %复仇者% THEN 1 ELSE 0 END)(CASE WHEN title LIKE %联盟% THEN 1 ELSE 0 END)) as rnt FROM hash WHERE title LIKE %联盟% group by id ORDER by rnt DESC关键1.就是这个SUM()求和函数关键2.该SUM函数要搭配子句:gr…

mysql外键关联查询_MySQL外键约束和多表联查

一.创建外键#测试数据表# 教师表,主表CREATE TABLE teacher(id INT PRIMARY KEY AUTO_INCREMENT,name varchar(20),age INT)ENGINEInnoDB DEFAULT CHARSETUTF8;#测试数据:INSERT INTO teacher values(1,范冰冰,22),(2,周杰棍,30),(3,双杰伦,35),(4,梁朝伟…

mysql innodb id_MySQL InnoDB row_id边界溢出验证的方法步骤

背景跟同学聊到row_id一个边界问题,这里详细说明下。InnoDB表若没有定义主键,会使用系统的一个默认递增row_id (dict_sys->row_id)作为主键。每次插入一行加1,到达最大值循环复用。需要注意的是,虽然dict_sys->row_id 被定义…

mysql memcached java_java缓存技术memcached实例

1 下载memcached-1.2.1-win32.zip 并且解压.2 新建web project项目 名字自己取,然后导入必要的包,alisoft-xplatform-asf-cache-2.5.1.jar,commons-logging-1.0.3.jar,log4j-1.2.13.jar3 新建类 user.javapackage bean;import java.io.Serializable;public class User impleme…