精华内容
下载资源
问答
  • 很多同学在设计初期,都是通过查阅大量的设计案例和教程来获得启发,然而很多同学在对平面图进行分析和制作的时候,缺乏对平面图内容进行判断,甚至不知道应该从哪些方面进行判断和学习,那是因为在学习初期不知道...

    总平面图,亦称“总体布置图”,按一般规定比例绘制,表示建筑物,构筑物的方位、间距以及道路网、绿化、竖向布置和基地临界情况等的图样;

    总平面图是设计师传达整体效果和最直观的图面表达方式。很多同学在设计初期,都是通过查阅大量的设计案例和教程来获得启发,然而很多同学在对平面图进行分析和制作的时候,缺乏对平面图内容进行判断,甚至不知道应该从哪些方面进行判断和学习,那是因为在学习初期不知道平面图包含哪些内容;

    下面我将对住宅景观,总平面图主要包含哪些内容进行介绍:

    1、图纸线性、虚实、粗细等层次是否分明;

    7ecbff14a6a29ce92bc620a4f2edf53f.png

    2、各功能区域、主要构筑物等标注是否明确;

    d788db04a0eeb065f64742fc8c5db7d9.png

    3、人行步道系统是否完整、便捷,是否符合人的行为习惯,与单元出入口是否吻合,人行道边缘与建筑开窗部位保持2.5m以上距离;

    72f29de17b1fcd67e853831349ddd7fe.png

    4、进一步评审交通组织的合理性,如:小区出入口的设置是否合理,是否考虑人车分流及满足物业管理需要等,出入口管理是否符合项目物业管理拟采用的方式(如岗亭设置的位置、N进N出、门禁的使用、道闸的使用要求等);

    98adce90631776c48ca9d0d13ca93054.png

    5、组团景观与公共空间的界面是否相对清晰,衔接处是否有一定的导向性景观;

    b6773b1bc865115a4c9fc37daaee8b6e.png

    6、围墙的位置与形式是否合理,是否与整体建筑风格相协调7、各出入口形象是否有较为明显的小区主题性标识设计8各构筑物、设备房、采光通风井、地下车库出入口是否遗漏9小区及组团标识、信报箱、垃圾收集点等形式是否与景观风格协调、位置是否合理;

    aad3366cbb993f52f478aa1fcad4dfbc.png

    7、图纸说明是否准确、全面;

    10749c32b92e4456e2d826356eee9a15.png

    8、标注主要控制坐标;

    6ad526f5d1da1b4b1f66761efe1d1ce4.png

    9、指北针;

    a15977f217c0e1ed16c1340964ca6967.png
    展开全文
  • 特殊情况:多边形中存在与点的射线重合的边,需要判断该条边前后两条边是否相对于该边是同一侧,若是同一侧,则认为点射线与该边没有交点,如果不同侧则认为射线与该边有一个交点。 原理:该算法原理是二维图形内部...

    思路:做从点出发垂直于x轴的向下的射线,射线于多边形的交点个数为奇数则在内部,偶数则在外部

    特殊情况:多边形中存在与点的射线重合的边,需要判断该条边前后两条边是否相对于该边是同一侧,若是同一侧,则认为点射线与该边没有交点,如果不同侧则认为射线与该边有一个交点。

    原理:该算法原理是二维图形内部的点向任意方向的射线总是穿过二维图形奇数次。

    展开全文
  • 题目描述来源:微软笔试题 难度系数:★★★★☆ 考察频率:★★★★★题目描述:单链表相交指的是两个链表存在完全重合的部分,如下所示:在上中,这两个链表相交于结点5,要求判断两个链表是否相交,如果相交...

    054658726af13fbff575caccefdc71f2.gif

    题目描述

    3cbb9dfcff9e68319396091c79074fb9.png

    来源:微软笔试题                         难度系数:★★★★☆                  考察频率:★★★

    题目描述:

    单链表相交指的是两个链表存在完全重合的部分,如下图所示:

    125f57b78613000f39e69789bcac2819.png

    在上图中,这两个链表相交于结点 5,要求判断两个链表是否相交,如果相交,找出相交处的结点。

    本题摘选自猿媛之家出版的《Python 程序员面试算法宝典》一书中。

    分析解答

    3cbb9dfcff9e68319396091c79074fb9.png

    分析

    分析与解答:

    方法一:Hash 法

    如上图所示,如果两个链表相交,那么它们一定会有公共的结点,由于结点的地址或引用可以作为结点的唯一标识,因此,可以通过判断两个链表中的结点是否有相同的地址或引用来判断链表是否相交。

    具体可以采用如下方法实现:

    首先遍历链表 head1,把遍历到的所有结点的地址存放到 HashSet 中;接着遍历链表 head2,每遍历到一个结点,就判断这个结点的地址在 HashSet 中是否存在,如果存在,那么说明两个链表相交并且当前遍历到的结点就是它们的相交点,否则直接将链表 head2 遍历结束,说明这两个单链表不相交

    算法性能分析:

    由于这种方法需要分别遍历两个链表,因此,算法的时间复杂度为 O(n1+n2),其中,n1与 n2 分别为两个链表的长度。此外,由于需要申请额外的存储空间来存储链表 head1 中结点的地址,因此,算法的空间复杂度为 O(n1)。

    方法二:首尾相接法

    主要思路:将这两个链表首尾相连(例如把链表 head1 尾结点链接到 head2 的头指针),然后检测这个链表是否存在环,如果存在,则两个链表相交,而环入口结点即为相交的结点,如下图所示。具体实现方法以及算法性能分析见(公众号菜单栏Python面试题系列 - 06题)。

    aec9c000e4feee6aff50b99b8c10d79a.png

    方法三:尾结点法

    主要思路:如果两个链表相交,那么两个链表从相交点到链表结束都是相同的结点,必然是 Y 字形(如上图所示),所以,判断两个链表的最后一个结点是不是相同即可。即先遍历一个链表,直到尾部,再遍历另外一个链表,如果也可以走到同样的结尾点,则两个链表相交,这时记下两个链表的长度 n1、n2,再遍历一次,长链表结点先出发前进|n1-n2|步,之后两个链表同时前进,每次一步,相遇的第一点即为两个链表相交的第一个点。

    解答

    方法三解答代码

    # -*- coding: utf-8 -*-"""Created on Sat Nov 10 12:31:22 2018@author: Administrator"""class  LNode:      def  __init__(self):          self.data=None        self.next=None """方法功能:判断两个链表是否相交,如果相交找出交点输入参数:head1与head2分别为两个链表的头结点返回值:如果不相交返回None,如果相交返回相交结点"""def  IsIntersect(head1,head2):    if  head1 == None or head1.next==None or  head2 == None or \        head2.next==None or head1==head2:        return  None    temp1 = head1.next    temp2 = head2.next    n1,n2 = 0,0    # 遍历head1,找到尾结点,同时记录head1的长度    while  temp1.next!=None:         temp1= temp1.next         n1 +=1  # 遍历head2,找到尾结点,同时记录head2的长度    while  temp2.next!=None:        temp2= temp2.next         n2 +=1  # head1与head2是有相同的尾结点    if  temp1 == temp2:        #长链表先走|n1-n2|步        if  n1>n2:            while  n1-n2 > 0:                head1 = head1.next                n1 -=1        if  n2 >n1:            while  n2-n1> 0:                head2 = head2.next                n2 -=1                        #两个链表同时前进,找出相同的结点        while  head1 != head2:            head1 = head1.next             head2 = head2.next         return  head1      # head1与head2是没有相同的尾结点    else:        return  None  if  __name__=="__main__":    i=1    # 链表头结点    head1=LNode()    head1.next=None    # 链表头结点    head2=LNode()    head2.next=None    cur=head1    p=None    # 构造第1个链表    while  i<8 :        tmp=LNode()        tmp.data=i        tmp.next=None        cur.next=tmp        cur=tmp        if(i==5) :            p=tmp        i +=1    cur=head2        # 构造第2个链表    i=1    while  i<5:         tmp=LNode()         tmp.data=i         tmp.next=None         cur.next=tmp         cur=tmp         i +=1    # 使它们相交于结点5    cur.next=p    interNode=IsIntersect(head1,head2)    if  interNode==None:        print  ("这两个链表不相交:")    else:        print  ("这两个链表相交点为:",interNode.data)

    程序的运行结果为:

    这两个链表相交点为:5

    运行结果分析:

    在上述代码中,由于构造的两个单链表相交于结点 5,因此,输出结果中它们的相交结点为 5。

    方法二算法性能分析:

    假设这两个链表长度分别为 n1,n2,重叠的结点的个数为 L(0,则总共对链表进行遍历的次数为 n1+n2+L+n1-L+n2-L=2(n1+n2)-L,因此,算法的时间复杂度为O(n1+n2);由于这种方法只使用了常数个额外指针变量,因此,空间复杂度为 O(1)。

    引申:如果单链表有环,如何判断两个链表是否相交

    分析与解答:

    (1)如果一个单链表有环,另外一个没环,那么它们肯定不相交。 

    (2)如果两个单链表都有环并且相交,那么这两个链表一定共享这个环。判断两个有环的链表是否相交的方法为:首先采用(公众号菜单栏Python面试题系列 - 06题)中介绍的方法找到链表 head1 中环的入口点p1,然后遍历链表 head2,判断链表中是否包含结点 p1,如果包含,则这两个链表相交,否则不相交。找相交点的方法为:把结点 p1 看作两个链表的尾结点,这样就可以把问题转换为 求两个无环链表相交点的问题,可以采用本节介绍的求相交点的方法来解决这个问题。

    感谢您的阅读,有任何问题欢迎评论区留言。

    · END ·

    b6326e38785fd42b896358be27ea1a09.gif

    8f0eb48d48796cc8b8c49bb5886936bf.png

    欢迎加入猿媛之家QQ群获取更多交流:496588733

    本公众号拥有优而全的高效复习资料(导航栏做了统一整理目录,持续更新...),旨在为您的面试求职保驾护航,提高您的职场竞争力,感谢您的支持!

    展开全文
  • 判断是否相交,先快速排斥,再做跨立,通过向量的叉积判断矩形的四个顶点是否在线段的两侧,是说明有交集。 (如果判断与矩形的边是否有交集的话,可判断线段是否与矩形的每条边是否有交集,线段与线段的交集判断。...


    判断线段AB是否与矩形范围有交集
    
    这里的矩形指的是边与坐标轴平行的矩形,可用x和y上最大最小值表示。
    
    判断是否相交,先快速排斥,再做跨立,通过向量的叉积判断矩形的四个顶点是否在线段的两侧,是说明有交集。
    
    (如果判断与矩形的边是否有交集的话,可判断线段是否与矩形的每条边是否有交集,线段与线段的交集判断。)
    
     
    
    这里在介绍另外一种方法,降维的方法:
    
    例如,有线段AB和矩形MN,如图所示:
    
    
    
    通过M和N点的y坐标计算直线AB上的D和C点,B和C点中取y值小的点B,A和D点中取y值大的点D,
    
    最后确定了线段BD在x轴上的投影GH,矩形在x轴上的投影EF,判断EF和GH是否有交集。
    
     
    
    C语言代码如下:
    
    /*
     * 判断区间[x1, x2]和区间[x3, x4](x4可能小于x3)是否有交集,有返回1,无0
     */
    int IntervalOverlap(double x1, double x2, double x3, double x4)
    {
    	double t;
    	if (x3 > x4)
    	{
    		t = x3;
    		x3 = x4;
    		x4 = t;
    	}
    	
    	if (x3 > x2 || x4 < x1)
    		return 0;
    	else
    		return 1;
    }
    
    /*
     * 判断矩形r和线段AB是否有交集,有返回1,无0
     */
    int RSIntersection(Rectangle r, Point A, Point B)
    {
    	if (A.y == B.y)	// 线段平行于x轴
    	{
    		if (A.y <= r.ymax && A.y >= r.ymin)
    		{
    			return IntervalOverlap(r.xmin, r.xmax, A.x, B.x);
    		}
    		else
    		{
    			return 0;
    		}
    	}
    	// AB两点交换,让B点的y坐标最大
    	Point t;
    	if (A.y > B.y)
    	{
    		t = A;
    		A = B;
    		B = t;
    	}
    	
    	// 在线段AB上确定点C和D
    	// 两点确定一条直线: (x-x1)/(x2-x1)=(y-y1)/(y2-y1)
    	double k = (B.x - A.x)/(B.y - A.y);
    	Point C, D;
    	if (A.y < r.ymin)
    	{
    		C.y = r.ymin;
    		C.x = k * (C.y - A.y) + A.x;
    	}
    	else
    		C = A;
    		
    	if (B.y > r.ymax)
    	{
    		D.y = r.ymax;
    		D.x = k * (D.y - A.y) + A.x;
    	}
    	else
    		D = B;
    		
    	if (D.y >= C.y)	// y维上有交集
    	{
    		return IntervalOverlap(r.xmin, r.xmax, D.x, C.x);
    	}
    	else
    	{
    		return 0;
    	}
    }
    


    展开全文
  • 简单多边形是边不相交的多边形,又称佐敦多边形,因为佐敦曲线定理可以用来证明这样的多边形能将平面分成两个区域,即区内和区外。 这题看到的时候顿时蛋疼了,我在FJNU...枚举对称轴是o(n),判断是否是对称轴又是o(n)
  • 设 c为矩形中心, h为矩形半長, p为圆心,r为半径。 方法是计算圆心与矩形的最短距离 u,若 u 的长度小于 r 则两者相交。 首先利用绝对值把 p - c 转移到第一象限,下显示不同...可以只求 u 的长度平方是否小于 r
  • uoj#57. 【WC2013】平面图 题意 给出由M( Q( 要求画一条不经过无界区域或顶点的曲线连接A,B,并使得其横穿的线段权值最大的最小。... 判断是否有解,输出最优解下... 几周前的模拟考了类似的东西,是平面图转对
  • 最近去看了Hopcroft和Tarjan老爷子在1974年提出的 O(V)O(V)O(V) 时间内判断一个图是否是平面图的算法,这是原文。 用了好一些时间才完全理解整个算法。想懂之后其实并不难,但真真实实非常巧妙,代码实现并不复杂,...
  • 判断一个存在哈密顿回路的图是否是平面图。 n≤200,m≤10000n\le200,m\le10000n≤200,m≤10000 题解 如果一定存在一个环,那么连的边要么在环里面要么在外面。那么把在同侧会矛盾的边之间连边,如果是一个二分图就是...
  • 在其他维度中,它们也可以形成平面、点或超平面。它们的“形状”总是笔直的,没有任何曲线。这就是为什么我们叫它们线性方程。非线性函数:即函数图像不是一条直线的函数。高阶多项式是非线性的。三角函数...
  • 在 Python 里面,这个加法的结果如下所示:因为这个原因,我们显然不能直接用等号判断两个浮点数是否相等,如下所示:在工程上,我们不要求绝对精确,只要求足够精确就可以了。所以,当我们要判断两个数是否相等...
  • 如何判断轮廓是否为圆? 如何判断轮廓是否为圆? 判断一个轮廓是否为圆?这看似简单的问题,在opencv中并没有...那么该如何判断这个轮廓是否是圆了。 我认为从两点来考虑。 一个是圆的定义: “平面上到定点...
  • C#判断线段是否相交

    千次阅读 2017-04-20 17:14:17
    线段是否相交,一种是从几何上就是判断两个线段有没有交点,还有一种是通过向量叉乘(也就是向量积)来判断。因为向量叉乘的结果是一个垂直于原来两个向量的新向量,可以简单的理解为垂直于原来两向量所在平面的向量...
  • 题意:给定一个图和一个哈密顿回路,判定是否是平台图。 解法: 用平面图m 若两条边在圆内相交,则他们在圆外也是相交的,即若a,b不能同时取,a’,b’也不能同时取 按2-sat建模缩点后判断合法性 ///BZOJ...
  • 判断线段是否相交

    2018-04-21 17:37:58
    是相交的,则向量 A1A2 和 向量A1B2在向量A1B1两侧 可以推导出:(A1A2*A1B1)x(A1B2*A1B1)&lt;0基本概念:1,A1A2=(x2-x1,y2-y1)2,...对我们来说判断平面即可,可推导公式:因此判断方法:private boolean i...
  • 判断是否在三角形内部

    千次阅读 2018-06-02 21:52:25
    判断是否在三角形内概述给定三角形ABC和一点P(x,y),判断点P是否在ABC内。这是游戏设计中一个常见的问题。也是《算法竞赛入门经典(第一版)》中5.4.3节“果园中的树”中的问题。重心法该方法简单易懂,速度也快,...
  • 根据平面图的欧拉定理可知平面图的边数m≤3*n-6。对于其它情况,对于题目中所给的哈密顿回路,不在回路上边一定是在回路里或回路外。如果两条边有交叉,那么一定是一个在里一个在外,用2-SAT维护逻辑关系,判断是否...
  • 无论买房还是改造装修,查看房屋的平面户型图纸都是必不可少的重要环节。那么我们如何从户型图纸中获取有效的信息并作出正确的判断呢?详细看完这篇你就会了解。看形状主要看卧室、客厅、餐厅等,每个房间是否方正!...
  • C++两个平面矩形的相交判断

    千次阅读 2018-02-08 00:35:33
    最近开发小游戏需要一个简单的碰撞检测,因为用的是自定义的Rect类,虽然...网上的算法要么就是判断顶点是否被包含,判断线段是否相交等等,这样做的不好的地方是要判断很多种情况。经过简单的分析我的方法如下所示:
  • [题目大意]:给出一个带有汉密尔顿回路的图,判断是否是一个平面图。 //============================================================================== [分析]:汉密尔顿回路回练成一个环,这个图必定被分成...
  • 判断是否在三角形内

    千次阅读 2015-11-05 15:42:30
    判断是否在三角形内概述给定三角形ABC和一点P(x,y),判断点P是否在ABC内。这是游戏设计中一个常见的问题。也是《算法竞赛入门经典(第一版)》中5.4.3节“果园中的树”中的问题。重心法该方法简单易懂,速度也快,...
  • 本程序主要实现输入平面坐标系中四边形四个顶点的坐标值并判断是否是正方形。在程序中首先需要输入待判断的四边形个数,然后依次输入各四边形四个顶点的坐标值,每个四边形的坐标由两行数据组成,第一行数据是四个...
  • 判断存在一条Hamilton回路的图是否是平面图。 和POJ3207几乎一样,只要把 判断相交的条件改成按回路编号比较就行了。 /* Footprints In The Blood Soaked Snow */ #include #include using namespace std; ...
  • 为了提高平面提取的速度,我们首先计算深度图像中点的法向量,通过法向量来判断这些点是否在一个平面上。运用求点的法向量可以同时检测多个复杂的平面,而且实验结果显示该方法比传统的3D Hough Transform以及RANSAC...
  • 如何判断轮廓是否为圆? 判断一个轮廓是否为圆?这看似简单的问题,在opencv中并没有...那么该如何判断这个轮廓是否是圆了。 我认为从两点来考虑。 一个是圆的定义: “平面上到定点的距离等于定长的所有点...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 212
精华内容 84
关键字:

判断是否是平面图