精华内容
下载资源
问答
  • 一分钟看懂一维空间到十维空间

    千次阅读 2018-12-16 23:08:54
    如果把一到十维度的空间用一张图来表达,你是否会看得明白呢?根据弦理论,粒子被看作是长度为普朗克尺度一维弦,在引入费米子的座标后,科学家提出了超弦理论。超弦理论暗示的平行宇...
        

    如果把一到十维度的空间用一张图来表达,你是否会看得明白呢?

    640?wx_fmt=jpeg

    根据弦理论,粒子被看作是长度为普朗克尺度一维弦,在引入费米子的座标后,科学家提出了超弦理论。超弦理论暗示的平行宇宙时空必须拥有十个维度,时空中也存在超对称现象,宇宙不仅是四维时空,而是多维的。

    640?wx_fmt=jpeg

    让我们从一个点开始,和我们几何意义上的点一样,它没有大小、没有维度。它只是被想象出来的、作为标志一个位置的点。它什么也没有,空间、时间通通不存在,这就是零维度。

    640?wx_fmt=jpeg


     一维空间▼ 

    好的,理解了零维之后我们开始一维空间。已经存在了一个点,我们再画一个点。两点之间连一条线。噔噔噔!一维空间诞生了!我们创造了空间!

    一维空间只有长度,没有宽度和深度。

    640?wx_fmt=jpeg


     二维空间▼ 

    我们拥有了一条线,也就是拥有了一维空间。如何升级到二维呢?很简单,再画一条线,穿过原先的这条线,我么就有了二维空间,二维空间里的物体有宽度和长度,但是没有深度。你可以试一试,在纸上画一个长方形,长方形内部就是一个二维空间。

    640?wx_fmt=jpeg640?wx_fmt=jpeg

    这里,为了帮助大家方便理解高维度的空间,我们用两条相交的线段来表示二维空间。

    640?wx_fmt=jpeg

    为了向更高的维度前进,现在我们现在来想象一下二维世界里的生物。因为二

    维空间没有深度(也可以理解成厚度),只有长度与宽度,我们就可以将它理解成“纸片人”,或者是扑克牌K.J.A Q里的画像。因为维度的局限,这个可怜的二维生物也只能看到二维的形状。如果让它去看一个三维的球体,那么他只能看到的是这个球体的截面,也就是一个圆。

    640?wx_fmt=jpeg


     三维空间▼ 

    三维空间大家肯定熟悉,我们无时无刻都生活在三维空间中。三维空间有长度、宽度与高度。

    640?wx_fmt=jpeg

    但是,我要用另一种思维来表达三维空间,只有这样,才可以向更高维度推进。

    好,现在我们有一张报纸,上面有一只蚂蚁。我们就姑且把蚂蚁君看作是“二维生物”,我在二维的纸面上移动。如果要让他从纸的一边爬到另一边,则蚂蚁君需要走过整个纸张。但是我们把这张纸卷起来呢?成为一个圆柱,一个三维空间里的物体;这时蚂蚁君只需要走过接缝的位置,就到达了目的地。(对了!就是传说中的虫洞)换句话说,把二维空间弯曲,就得到了三维空间,我们就可以这样来表达。

    640?wx_fmt=jpeg640?wx_fmt=jpeg

    再解释一遍,在这个图示上,蚂蚁从A点消失,B点出现,你们想想,就是这意思,卷曲产生新的维度!

    640?wx_fmt=jpeg640?wx_fmt=jpeg640?wx_fmt=gif

    好了,

    开始进入烧脑阶段!

    前三个维度我们可以简单理解成长、宽、高。那么我们怎么理解四维空间?


     四维空间▼ 

    四维比三维多一维,它是什么?是时间!

    想象一下,左边有一个1分钟之前的我,右边则是现在我,将这“两个我”看成两个点 ,穿过他们连线,它就是四维空间里的线。太棒了,四维空间出现了!

    640?wx_fmt=jpeg

    那么在现实当中我们可以看到过去和未来的我么?不能!因为我们是三维生物,活在三维空间中。 就像上文提到的,那位二维生物只能看到三维物体的截面一样,我们作为三维生物,只能看到四维空间的截面,也就是现在的你、我、他;换句话说就是此时此刻的世界 。

    640?wx_fmt=jpeg640?wx_fmt=jpeg

    你们还可以么?

    我要开始讲五维空间了哦


     五维空间▼ 

    首先我们要明确一点,低维度生物不能意识到高维度空间发生的事情。我们从出生到现在,都感觉自己在同一个空间里。我们常说“随着时间的推移”,其实就是沿着时间线向前,这条时间线就是四维空间里的那条线,换句话说,三维的我们沿着四维空间里的时间线向前走。

    640?wx_fmt=jpeg

    假如我们是四维空间生物,我们就可以看到过去、现在、将来各个时段的我们自己。但是,时间线只有一条,还记得前文中两条线交叉,将一维升级为二维么?那么现在,在四维这条时间线的基础上,我再加一条时间线和这条时间线交叉,五维空间就出现了!

    640?wx_fmt=jpeg

    不懂?没关系!例子举起来!比如说,你大学毕业参加工作,工作了5年,现在是一名经理,那么四维空间里你只能看到大学毕业的你以及成为白领的这条时间线上的你。 如果当初你初中毕业就去学烹饪,现在是一名厨师。那么这就是另一条时间线上的你。

    在五维空间中,你可以看到成为经理的你,也可以看到成为厨师的你。总结的说,五维空间,你可以看到你未来的不同分支。

    640?wx_fmt=jpeg


     六维空间▼ 

    OK 我开始解释六维空间。现在的你如果想拜访一下过去的你,怎么办?我们可以将四维空间中任意一条时间线弯曲,这样你就可以跳回以前,去见以前的你。换句话说,五维空间中,你可以“穿越”回到一条时间线上的过去。

    还是拿“经理的你”和“厨师的你”举例子,厨师的你感觉日子很艰辛,每天油烟呛人,你想成为经理,安安静静在办公室里坐着。怎么办?五维空间中,你可以穿越到你初中毕业的时候,告诉以前的你,一定要继续读书,上高中,考大学,做白领。不过这很费力,而且风险很大,初中毕业的你需要作出不同的选择,每一种选择都会产生一个新的时间线,一个不同版本的未来。

    你们还记得二维空间中蚂蚁君和报纸么?弯曲一个空间产生一个新的维度。对了!我们直接把五维空间弯曲,产生六维空间。这样,你就可以穿越到“经理的你”这条时间线,看一看另一个版本的你。

    640?wx_fmt=jpeg


     七维空间▼ 

    如果你能看到这里,恭喜你,你的脑洞已经很大了。

    好,我们继续,七维空间走起来。还是那个例子,前面提到两个时间线:经理与厨师。初中毕业的你,不可能只有这两种选择,而是近乎无限。怎么解释,你的每一个决定都在塑造出一个特有的你。你可以成为任何一种你。概括地说,初中毕业的你是一个起点,所有的时间线。都从这个点向外辐射,数量是无穷大,那么最后,七维空间里的一个点,里面包含着“初中毕业的你”开始的无限种可能。

    640?wx_fmt=jpeg640?wx_fmt=jpeg

    那么怎么画出七维空间里的一条线?我们需要另一个点,但是这个点已经包含了无限,如何再去找另外一个点?那就是另一种开端。

    没关系,我们举例子,你会懂得。前文中我们提到由“初中毕业的你”为开端而产生的七维无限点;如果你小学毕业的时候就作出不同的选择呢?每一个选择又会塑造一个不同的你;那么以“小学毕业的你”为开端,就会产生另一个包含着无限时间线的点。将这两点连成一条线,就是七维空间的线。

    640?wx_fmt=jpeg


     八维空间▼ 

    还记得文章开始时提到的一维的线么?我们把另外一条线穿过它,就变成了二维空间。同样的道理,我们来给七维空间升级。例子呢,还是那个“你”。我们又找到了两个点,一个是由“大学毕业的你”为开端产生的七维无限点,另一个是由“50岁的你”为开端产生的无限点。将这两点连线,与上文中那条连接“初中毕业的你”无限点“小学毕业的你”无限点的这条线相交。我们就得到了八维空间!

    640?wx_fmt=jpeg


     九维空间▼ 

    好了,讲到这里,你其实可以想象出九维空间是什么样了。我们把八维空间理解成那张报纸,平平的。这时蚂蚁君又出现了,不过它已经进化成八维空间生物了,给它一样的任务,要他横跨整个报纸去目的地,怎么办?将报纸再一次卷起来,虫洞又出现了。蚂蚁君顺利穿过虫洞出现在目的地。也就是说,将八维空间继续卷曲,我们就得到了九维空间!

    640?wx_fmt=jpeg


     十维空间▼ 

    这里我来总结一下,回顾上文,从零维到四维,我们经历了点、线、面、体这个升级流程。然后四维空间又可以看做一点,充满着三维空间中所有可能性的连线,这个连线就是时间。

    从四维到八维,我们又经历了点、线、面、体的升级流程。八维的点,充满着七维空间中所有可能性的连线。

    八维空间继续升级。还是那个“你”,以八维空间的点为起始,我们必须想出所有的可能,每一种可能都与八维的这个点相连,最后,我们得到十维空间里的一个点,充满着九维空间中所有可能性的连线。

    还能再升级么?不能了,在十维空间中,我们找不到任何一个空间可以在划出一个点,因为,十维空间就是一个点!

    它包含着所有的宇宙、所有的可能性、所有的时间线、所有的所有...........

    640?wx_fmt=jpeg

    从零位到十维,我们经历了这么多,

    最后,它还是一个点

    640?wx_fmt=jpeg

    科学家目前发现的时空是10维的,减去我们看见的3维时空还有7个维度,那么,往后,还会不会有更大的神奇发现吗?


    文章出自微信公众号“算法数学之美”,由算法与数学之美团队打造的另一个公众号,欢迎大家扫码关注!

    640?wx_fmt=jpeg


    更多精彩:

    ☞ 本科、硕士和博士到底有什么区别?

    读博不易!约1/3博士生面临精神问题

    小波变换通俗解释

    微积分必背公式

    影响计算机算法世界的十位大师

    数据挖掘之七种常用的方法


    算法数学之美微信公众号欢迎赐稿

    稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。

    投稿邮箱:math_alg@163.com

    展开全文
  • 一维空间最近点对问题

    千次阅读 2013-12-13 15:59:02
    * 一维空间最近点对问题 * @author zy * */ public class CPair1 { static class CPair { int dist; int d1,d2; public CPair(int dist, int d1, int d2) { this.dist = dis...

    /**
    * 一维空间最近点对问题
    * @author zy
    *
    */
    public class CPair1
    {
    static class CPair
    {
    int dist;
    int d1,d2;
    public CPair(int dist, int d1, int d2)
    {
    this.dist = dist;
    this.d1 = d1;
    this.d2 = d2;
    }
    public String toString()
    {
    return dist + " " + d1 + " " + d2;
    }
    }
    /**
    * @param args
    */
    public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    int[] S = {1,3,4,6,8};
    System.out.println(cpair1(S, S.length));
    }

    public static CPair cpair1(int[] S, int n)
    {
    if(n<2) return new CPair1.CPair(Integer.MAX_VALUE, 0, 0);

    //获取S中的最大值
    int m1 = max(S, 0, n);

    //后去S中的最小值
    int m2 = min(S, 0, n);

    //取得中位数
    int m = (m1+m2)/2; //中位数

    //记录两个分组的长度
    int j=0,k=0;

    //根据中位数来分组(最长不会超过n)
    int[] s1 = new int[n];
    int[] s2 = new int[n];
    //s1全部小于=m,s2全部大于m
    for (int i = 0; i < n; i++)
    {
    if(S[i]<=m)
    {
    s1[j]=S[i];
    j++;
    }
    else
    {
    s2[k] = S[i];
    k++;
    }
    }

    //递归求解S1,S2
    CPair d1 = cpair1(s1, j);
    CPair d2 = cpair1(s2, k);

    //找出S1中的最大值和S2中的最小值
    int p = max(s1, 0, j);
    int q = min(s2, 0, k);

    //比较S1中的最小距离和S2中的最小距离,以及S1中最大的数字和S2中最小的数字的距离,取三者的最小值
    //返回s[]中的具有最近距离的点对及其距离
    if(d1.dist<d2.dist)
    {
    if((q-p) < d1.dist)
    {
    return new CPair(q-p, q, p);
    }
    else
    {
    return d1;
    }
    }
    else
    {
    if((q-p)<d2.dist)
    {
    return new CPair(q-p, q, p);
    }
    else
    {
    return d2;
    }
    }
    }

    public static int min(int a, int b, int c)
    {
    int min = a;
    if(b<min)
    {
    min = b;
    }
    if(c<min)
    {
    min = c;
    }
    return min;
    }

    public static int max(int[] S, int begin, int end)
    {
    int m1 = S[begin];
    for (int i = begin+1; i < end; i++)
    {
    if(S[i]>m1)
    {
    m1 = S[i];
    }
    }
    return m1;
    }

    public static int min(int[] S, int begin, int end)
    {
    int m2 = S[begin];
    for (int i = begin+1; i < end; i++)
    {
    if(S[i]<m2)
    {
    m2 = S[i];
    }
    }
    return m2;
    }
    }
    展开全文
  • 能向他发送信息,继而影响他的未来,这就像电影《星际穿越》中,主角机缘巧合之下进入了五维空间,他通过改变手表指针颤动方式向三维世界中他的女儿传递信息,改变了她女儿的选择,也改变了全世界,这就是个典型的...

    电影中身处五维空间,我们就会拥有上帝视角的同时还会拥有上帝的“能力”!那就是操控一切!我们能任意操控一个人的过去、现在亦或者未来,我们能够看到一个人的任何时期,任何年龄段,能向他发送信息,继而影响他的未来,这就像电影《星际穿越》中,主角机缘巧合之下进入了五维空间,他通过改变手表指针颤动方式向三维世界中他的女儿传递信息,改变了她女儿的选择,也改变了全世界,这就是一个典型的例子。真实的五维空间是什么样?如何算是进入五维度?

    导读:如何突破四维空间,进入五维空间。

    铺垫做的差不多了,现在该说说正题了。如果没有这个正题,我就没有必要写这篇文章。正题是什么呢?正题是五维空间是咋样的存在?我们在讨论维度的时候,都很容易陷入从数学维度空间入手。爱因斯坦那么聪明,他没有想过这个问题吗?肯定想过,不用怀疑!然而他给出的第四维度是时间,不是从数学思维去推导了。没有然后,他没有给出第五维度是什么,说明什么,这东西不是凭想象就能整出来的。想象力大于知识的本质理解应该是想象力必须建立在知识层面上才能有实际和事实意义。

    如何突破四维空间,进入五维空间

    我今天突然想到了能不能顺着他的思维从时间上去突破对维度的认识。不是长,高,宽这样的拓展认识,因为再从这个面去突破不好想象,找不到突破口。那么从时间从来说呢?

    从时间方面考虑,有一种可能性的存在,但能不能说这是“第五维度”一定是有争议的,因为它是从时间上又拓展的一个东西。从现在科技发展的轨迹来讲,这是可能实现的一个东西。这和超级人工智能有关。

    时间没有过去的理解是时间过去了,你就不再拥有,你没有改变过去的能力。惠勒延迟选择实验也是。对于人类而言,要破第四维度,破的一定是空间。很明显有两个方向。一个是我们现在主流想的,把空间维度往复杂了想,我们脑瓜子想的痛都想象不出来啥。另一个方向干脆就认为“无”是第五维度,就是说你已经看不到墙了,看不到土地了,看不到太阳了。但你又能看到所有这些。这矛盾吗?这不矛盾!

    如何突破四维空间,进入五维空间

    你把你自己想象成“光”就可以了,就这么简单。看到这里,你可能认为我脑子有问题,人怎么可能是光呢?上面说了,人类要突破第四维度,一定是破的是空间,那就首先破人自己,自己的肉体!而这样你能想到什么了?当然是精神或者思维这样的词汇了。

    一部电影是如何从美国传到中国的,一个个远隔山川河流的电话是如何沟通的大家现在很明白是电磁波啊。无论是走光缆还是卫星通道,那都是电磁波啊,电磁波不是光吗?肯定是啊。

    接下来我举个例子,便于你更好的去理解为什么要从时间方向去突破维度。时间时刻存在,我们不能改变过去和未来,未来和过去也是不可得的。但是时间是可以被记录的。有个词叫实时记录,你肯定拍抖音。假如你现在拍了15秒视频,记录了你喝了一杯水。你过了50年后一定不能想到2020年5月4日晚上2点42分到42分15秒的时候,你喝了一杯水。但你翻开抖音之后,你看到这个时间点,你自己住做什么。

    如何突破四维空间,进入五维空间

    那么关键点来了,假如有一个东西就像摄像头一直在你头顶,从你出生到死亡都记录你的一点一滴。那么你的人生就像一部电影,你想看8岁的时候你在干什么,你扒拉一下后退,就看到了。你就在好像站在了8岁的你的旁边,身临其境地看着你自己。

    再延伸一下,你不仅能看到你的,你也能看到所有的人的人生轨迹,他们的人生轨迹你可以查询的。你能远隔万里去查询非洲一个陌生人的生活过去和现在。就好像你像个黑客,你有偷窥他人的能力,你不再受限于水泥墙的限制,山川和河流的限制。你好像什么地方都可以观察到,什么地方都可以去。一个正方体在你面前可能是没有“立体面”的东西,或者说6个面你都能看到,因为你感受这些东西的能力不是靠眼睛了。

    要做到这点,那就是你要以一种方式脱离肉体而存在。我们需要突破的技术壁垒是如何把人的思维变成“数据”,变成“光一样的数据”,让它们哟组织地自由穿梭在空间中。其实这显然不是我第一个这么想的,看过《黑客帝国》的人都能清楚这一点。但我可能是能更通俗的,更能贴合现实理论来让大家明白这个点的人。在这里插入图片描述

    不同的是我们无法改变过去,我们只是看到了记录的痕迹而已。人工智能绝对有一个天会发展到能看到我们的生活的一天。即使现在我也为大数据的计算而惊讶。我有一次和朋友在微信上聊天,聊到某一个人,当然这个人我和朋友都认识,奇怪的事情发生了,我打开抖音刷到第一条视频就是我们谈论的这个人。我在抖音上是第一次刷到他。

    我特别惊讶,这可比你在搜索栏搜飞机模型,然后广告就推荐飞机模型给你厉害。无独有偶,我朋友也给我截了图,说了他的一个惊讶,也是前几天才发生的事情。有人给他介绍了一个对象,然后他们刚加了微信,他打开抖音刷到的第一条视频就是这个对象的。你说这是偶然吗?这不是偶然。

    我昨天还经历过一个类似的事件,微信记步里面我看到一个朋友走了四万九千多步,她肯定是去爬山了。我打开抖音刷到的第一条视频也是她的,是她发布的登山视频。

    如果你能以数据形式存在于任意一个平台,比如说百度,淘宝,抖音等,你觉得会是一种什么体验。一定是特别神奇的体验。而这个时候,我们的科技技术是什么程度,是我们现在难以想象的程度。

    也就是说如果有第五维度,不妨把人变成“物”来看,也就是一种虚拟数据来看。因为人无法突破思维空间是人的局限性,不是“物”的局限性懂了吗?当你不再是泥胎肉体的时候,也许这一切就简单的像零加一一样。就好像几个月大的婴儿,可以体验到三维空间一样,会恐高一样。在这里插入图片描述

    那么多问一句我们自己,外星文明有可能达到这一文明高度吗?那是相当有可能啊。地球上都有会发光的萤火虫,都有会放电的电鳗,当然还有人类,人类思维产生也是物质的电化学等反应。那么外星人呢?甚至他们可以直接将思维外放,查看光年级别之外的东西。

    说了这么多,第五维度是什么?我想了半天,还是叫“光级空间”吧。当然如果第五维度存在,那么它就是客观存在,不以人类的意志为转移。也就是说人类存不存在,第五维度都存在。你可以理解为穿透你身体的每一道光都是“光级空间”,它是有意义的,是携带了能量和物质的。

    而人类能以文明能衔接“光级空间”一定是很不容易的。即使思维可以转化为数据信号,它的传播性,抗干扰性,人体自身如何控制这种数据信息……都是令人着迷的。但科技总是在进步,脑科学,大数据,人工智能正是这几年被大力投资和推进的产业,我相信前进是光明的。而当人的思维能接的上“光级空间”的时候,所有的颜色,形状,温度可能都不再重要,一个全新世界观正在被塑造或发现。

    写到这里,我突然又想到一个电影《K星异客》,大意就是讲一个男人来自外星,他回去的时候会乘着光回去,还带走了一个人到他的星球上去了。如果我不写这篇文章,我大概这辈子很难想起这个电影了,因为看过好几年了。光是个神奇的东西,似乎什么都可以变成光。不信你看看周围什么东西不能变成光,比如木头,空气,植物……一切东西皆可燃烧,包括人。然后一定有一种可以不牺牲肉体的方式,让我们重新看到另一个世界,匪夷所思的世界。只有这样的情况下,我觉得才是可以想象的,靠谱的。在这里插入图片描述

    以现在的科技发展来说,我觉得再有100年,人类就能达到进入“光级空间”的能力了。时间啊,时刻存在着。可是我不会一直存在着,当宿主不存在的时候,即使有人能够进入“光级空间”也不能查看我的这个宿主的过去了。因为我没有随时刻录我的过去。当然我不排除有人在刻录,比如外星文明。

    “人在做,天在看”,“头顶三尺有神明”……我现在想到这些俚语,就觉得更有意思了。说这话的人,肯定没有想到我这样来理解他说的话。思维能像电磁波一样充实着空间的话,我的过去依然会被后人看到。这是一件多么有意思的事情啊。想想我干过坏事没有,又干了什么好事……总之是有意思的,我的人生欢迎100年之后的人来观看。

    如果这是第五维度,那么肯定会有朋友问:那你说第六维度应该是怎么样?还别说,我真的思考了。很有趣,简单来说就是再往上就是重构空间的能力了,想到这里你就能想到为什么有一些顶级科学家会陷入神学论了。不要再往上想了,这是一个不可想象的事实,无论你辅以什么条件,都难以撼动时间。因为你对抗的是整个宇宙!你仔细去思考吧。

    生命在于运动,生命在于探索。也许我的思维总是错误的,但我清楚,总有一个人会是对的。

    在这里插入图片描述

    摘自独立学者,科普作家,艺术家灵遁者书籍《变化》

    展开全文
  • 维空间确定个圆弧的种方法

    千次阅读 2020-08-22 11:51:18
    如何在三维空间表示或描述个圆弧,我们已知的方法有以下几种: 已知圆心(x0,y0,z0),圆弧上起点(x1,y1,z1),圆弧终点(x2,y2,z2),弧方向(xt,yt,zt) 已知圆心(x0,y0,z0),圆弧上起点(x1,y1,z1),弧...

       

    如何在三维空间表示或描述一个圆弧,我们已知的方法有以下几种:

    • 已知圆心(x0,y0,z0),圆弧上起点(x1,y1,z1),圆弧终点(x2,y2,z2),弧方向(xt,yt,zt)
    • 已知圆心(x0,y0,z0),圆弧上起点(x1,y1,z1),弧方向(xt,yt,zt),弧度 θ

    无论哪种方法,都觉得需要好多参数,并且提供的这些信息有重复部分,并非完全独立。

    这里提出一种求圆弧的方法,个人觉得是在比较少输入信息情况下可以表示一段圆弧了:

    • 已知圆弧上起点P1(x1,y1,z1),圆弧终点P2(x2,y2,z2),弧起始方向F(xt,yt,zt)

    上图是示意图,在三维空间中的一段圆弧。

    现在需要证明这些信息可以唯一确定一段圆弧,我们可以计算它圆心的位置。

    1、如上图,首先根据P1P2,我们得到他们所在的向量F12。我们因为已经知道圆弧方向向量F,因此两个向量已经可以确定圆弧所在平面了。

    2、叉乘F和F12,我们可以得到垂直于该平面的向量F2。

    3、同样,再叉乘F2和F12,我们可以得到垂直于这两个向量所在平面的向量Fr1。

    4、圆心在线段P1-P2的中垂线上,我们知道了P1和P2可以得到其中点P3,又知道了垂直于P1-P2的直线方向Fr1(且该直线在圆弧平面内),因此可以得到过圆心的一条直线l1。

    5、如下图,叉乘F和F2,我们可以得到垂直于F的向量Fr2,因为F2垂直于圆弧所在平面,所以Fr2必定是在圆弧平面内的。

    6、根据P1点和方向Fr2,我们可以唯一确定出另一条过圆心的直线l2。

    7、两直线交点为圆心坐标,由此可唯一确定出圆心O,也可以证明该圆弧是唯一的。

    这种方法我们需要的数值有9个,即圆弧起点和终点坐标,及圆弧起始方向。

    而实际上,圆弧方向我们不需要长度,因此还可以归一化掉一个数值,所以本质上我们只需要输入8个值就可以确定空间中的一段圆弧。

    下面是部分代码示意:

    Coordinates Arc::GetCenter()//计算圆心
    {
    	//计算垂直于平面的向量
    	Coordinates Lab= LineAB();//获得向量起点重点方向向量ab
    	Coordinates vertLine=CalculateCross(Lab, m_dir1);//求垂直于弧面的垂线
    	Coordinates LineAO = CalculateCross(vertLine, m_dir1);//计算过A和圆心O的直线方向。
    
    	Coordinates AveAB;//计算AB中点
    	AveAB.x = 0.5*(GetPoint2().x + GetPoint1().x);
    	AveAB.y = 0.5*(GetPoint2().y + GetPoint1().y);
    	AveAB.z = 0.5*(GetPoint2().z + GetPoint1().z);
    	Coordinates LineCO;//计算AB中点C与圆心连线所在直线的方向
    	LineCO.x = 0.5*(GetPoint2().x - GetPoint1().x);
    	LineCO.y = 0.5*(GetPoint2().y - GetPoint1().y);
    	LineCO.z = 0.5*(GetPoint2().z - GetPoint1().z);
    
    	//已知两条线的方向及各自过的点,可以直接用相交的方法求交点
    	double ta = (LineCO.x*(GetPoint1().y - AveAB.y) - LineCO.y*(GetPoint1().x - AveAB.x)) / (LineCO.y*LineAO.x - LineCO.x*LineAO.y);
    	double tc = (LineAO.x*ta + (GetPoint1().x - AveAB.x)) / LineCO.x;
    
    	//定义圆心坐标
    	m_center.x = LineAO.x*ta + GetPoint1().x;
    	m_center.y = LineAO.y*ta + GetPoint1().y;
    	m_center.z = LineAO.z*ta + GetPoint1().z;
    	return m_center;
    }
    

     

     

    展开全文
  • (1) 设计个类代表二维空间个点 (2) 设计个类代表二维空间个圆。要求两个成员变量。个是圆心, 个是半径,提供计算面积的方法。 (3) 为上述Cricle类添加个方法,计算个点(Point对象)是否在圆...
  • 《走进四维空间-我们如何理解时空》:*** https://blog.csdn.net/dog250/article/details/87252892 感觉有点太主观了,决定趁着周末再整理一下。 这是万幸的周末,家里的女人们都去闲逛了,只剩下我,安安,还有嘟狗
  • 3维空间到2维空间投影的分类

    千次阅读 2016-01-12 00:24:08
    3维空间到2维空间投影的分类 Written by Paul Bourke December 1994 以下对大部分常用的把三维 几何体投影到二维平面上的投影方法做了分类。每个类型都概括出了其简短的特点。 全景投影:投影线彼此不平行...
  • 作者:王赟 Maigo ...个核函数把低维空间映射到高维空间的例子。 下面这张图位于第、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”...
  • 现在的理论物理处于种矛盾期,宏观上的相对论和微观上的量子力学一直无法统一,大统一理论迷惑了一代又一代物理...所有的基本粒子都是二维空间粒子,黑洞是个巨大的二维空间,三维空间中存在裂缝,可以用二维空间
  • (1) 设计个类代表二维空间个点 (2) 设计个类代表二维空间个圆。要求两个成员变量。个是圆心, 个是半径,提供计算面积的方法。 (3) 为上述Cricle类添加个方法,计算个点(Point对象)是否在圆...
  • 本文将实现三维空间中的旋转和平移变换,即将三维空间中的个向量(或者个空间图形)移动到另个位置。如下图所示: 如上图所示,由矢量移动到矢量二。 三维空间中的移动可以分为旋转和平移。 设矢量在...
  • 计算二维空间某点的最近k 个点

    千次阅读 2016-06-17 12:13:44
    一维空间中距离点A 最近的一个点 一维空间中距离点A 最近的K 个点 一维空间中距离点A 小于D 的所有点 二维空间中距离点A 最近的一个点 二维空间中距离点A 最近的K 个点 二维空间中距离点A 小于D 的...
  • 维空间解密

    2015-05-29 15:43:10
    在四维空间的理解上,大部分人产生了个误区。首先,给大家引用个数学前辈的比喻:  让我们先假设个生活在二维空间的“扁片人“,他只能认识平面。假如要将它关起来,只需要在他四周画个圈,在二维空间内,...
  • 多维空间:对于一维到七维的理解

    千次阅读 2017-11-23 10:16:42
    解释一维到七维。
  • C语言如何动态申请一维和二维空间呢? 这里有个小例子,看过后就很容易理解 编译环境为vs2013
  • 源码下载简介 ...OpenGL模拟的个3维空间模型,VC++源码实现,个模拟的3维视图,随着鼠标移动会改变视图,VC++6下可直接编译代码,仅此参考。 源码下载地址:点击下载 备用下载地址:点击下载 ...
  • 一维二维三维的境界

    2019-04-23 19:24:42
    我把人与人,人与社会,人与自然的关系看成了一维、二维、三维的关系。只要构成一个空间,就可以成为三个维度的关系。个体、团队、企业也是三维关系。也可以这么理解,一维境界就是以自我为中心;二维境界就是以我他...
  • 根据三维空间坐标点如何构建三维模型1.Halcon 算子:xyz_to_object_model_3d2.OpenCV生成...功能:将含有三维空间坐标的图像(数值矩阵)生成个三维模型,输入的图像为三维空间坐标点的X、Y、Z图像 xyz_to_object_...
  • 维空间坐标系变换-旋转矩阵

    万次阅读 多人点赞 2018-09-03 18:38:08
    这里先介绍旋转矩阵(旋转向量)与欧拉角实现三维空间坐标变换的方法以及两者之间的关系。  这里以常见的世界坐标系与相机坐标系间的变换为例。 、首先介绍从相机坐标系转换到世界坐标系,也就是比较通用的body到...
  • 矩阵运算—四齐次空间

    千次阅读 2018-02-24 11:06:46
    简单地说明一下,在一维空间中的一条线段上取一点x,然后我们想转移x的位置,那我们应该是x'=x+k,但我们能使用一维的矩阵来表示这变换吗?不能,因为此时一维的矩阵只能让x点伸缩。但如果变成了一维的齐次空间[k 1]...
  • 维空间中的两个三角形,形状相同,在不同位置,使用什么方法使其重合? 我的思路: 1.找到这两个三角行的法向量(三点确定个平面,确定其法线向量) 2.根据法向量计算这两个三角形法向量的各个相差角度(计算三...
  • 维空间的假想

    2015-12-03 20:37:37
    而四维空间又多了个时间。看个图说明下: 我们将上面的这个理解为个三维空间的物体,比如理解为个人(发挥你的想象力,把它想象为个人)。 想象不出来?那好吧,我重新画个: 这是个三维物体(人)...
  • 正射投影(简称投影)是常见的种线性变换,不过通常它会改变向量的长度,因此它不是种正交变换。本文将采用若干种方法讨论如何将个从原点出发的向量投影到个过原点的平面上。...设三维空间中过原...
  • 维空间的坐标系

    万次阅读 2012-10-09 13:25:46
    维空间可以投影到二维空间上,形成个坐标系投影 四维空间投影到三维空间上,也可以形成个坐标系投影
  • 认知四维空间

    千次阅读 2012-08-12 21:30:42
    昨天在个大牛的博客(Google搜索“大牛的博客”,第个就是他)的篇博文里,看到了四维空间的认知,好奇心驱使就查了些wiki,百科之类,看了些视频下面试着来阐述阐述,加强下自己的理解。 维数类比 ...
  • 分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求: (1) Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化...
  • author: tang yuxin @ rdcps 昨天,师兄去某知名IT公司面试,回来和我说了个很有意思的面试题目:用m-1维空间分割m维空间,求在n次分割的最大m维空间数目。这个题目我是在基于猜想和递推分析的,下面让我们从m=1...
  • 今天有人在问:怎么把控件贴到三维空间里的个面上?我想,可以看看这篇文章:使用 WPF 向控件和三维表面添加视频(http://msdn.microsoft.com/zh-cn/magazine/cc163455.aspx),看完之后你举返三,一定会有收获...
  • 可以根据需要,向系统申请所取空间的大小,因为没有在声明部分定义它们为变量或数组,所以不能通过变量名或数组的方式去引用这些数据,只能通过指针来引用。 对内存的动态分配是通过系统提供的库函数来实现的,主要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,694
精华内容 11,477
关键字:

一维空间