-
【程序员面试金典】在二维平面上,有两个正方形,请找出一条直线,能够...假定正方形的上下两条边与x轴平行。
2018-07-23 10:25:05假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1)...题目描述
在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。
给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。
测试样例:
[(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),(2,0),(2,1)]
返回:[0.0,0.5]
知道矩形的中心点就没问题了。
/* struct Point { int x; int y; Point() : x(0), y(0) { } Point(int xx, int yy) { x = xx; y = yy; } };*/ class Bipartition { public: vector<double> getBipartition(vector<Point> A, vector<Point> B) { // write code here double x1 = (A[0].x + A[2].x)/2; //第一个中心点横坐标 double x2 = (B[0].x + B[2].x)/2; double y1 = (A[0].y + A[2].y)/2; //第一个中心点纵坐标 double y2 = (B[0].y + B[2].y)/2; double s = (y1-y2)/(x1-x2); //斜率 double y = y1 - s*x1; //截距,也可以代入第二个中心点计算 vector<double> ans; ans.push_back(s); ans.push_back(y); return ans;//返回结果 } };
-
加一条平行于y轴的直线_弄懂这些例题和解题技巧,中考数学二次函数与直线交点问题不丢分...
2021-01-12 08:59:27初中数学二次函数这部分内容,是中考的热门考点,同学们一定要好好学习这部分的内容,而二次函数抛物线与直线的交点问题,也是中考比较热衷的题型...一次函数y=kx+p(k≠0).1、要求出直线与二次函数 y=ax*+bx+c(a≠0...初中数学二次函数这部分内容,是中考的热门考点,同学们一定要好好学习这部分的内容,而二次函数抛物线与直线的交点问题,也是中考比较热衷的题型和考法,今天我和同学们一起通过实例来分析讲解这部分的内容,明确此类问题的解题方法。
《必备知识》
在平面直角坐标系中一共存在三种直线,分别是:平行于x轴的y=m;平行于y轴的x=n;一次函数y=kx+p(k≠0).
1、要求出直线与二次函数 y=ax*+bx+c(a≠0)的交点坐标,只需要将解析式联立即可,如:
2、探究图像交点个数。如:
注意:抛物线与直线y=m只有一个交点时,交点一定是抛物线的顶点。
二次函数与一次函数只有一个交点时,交点一定不是二次函数的顶点。
【点评】题中涉及两个函数的交点个数的情况,解题思路如下:
①联立两个函数解析式,整理的一个一元二次方程;
②根据交点的个数确定一元二次方程根的判别式与0的大小关系;
③写出关系式,从而求出答案。
【分析】分别令x=0、y=0,得到方程,解方程即可求得A、B.C点的坐标,然后分两种情况分别讨论即可得出b的取值范围.
【点评】本题考查了二次函数的图像与结合变换,抛物线与坐标轴的交点,主要考查学生数形结合的数学思想方法.
解答本题直线平移(即k不变)的交点个数问题,步骤如下:
①画出符合题意的函数图像;
②将直线在坐标系中上下平移,找到符合题意的临界位置;
③带人点坐标,求得b值;
或联立函数解析式得到一元二次方程,令△=0求得b值;
④临界位置之间的部分即为满足题意的部分;
⑤利用求出的b值确定满足题意的b的范围。
【点评】本题考查了二次函数图像与几何变换:由于抛物线平移后的形状不变,故a不变,所以求平移后的抛物线解析式通常可利用两种方法:一是求出原抛物线上任意两点平移后的坐标,利用待定系数法求出解析式;二是只考虑平移后的顶点坐标,即可求出解析式.
【分析】(1)由顶点坐标确定m、k的值,再令y=0求的图像与x轴的交点坐标;
(2)设存在这样的P点,由于底边相同,求出△PAB的高|y|,将y求出代入二次函数表达式求得P点坐标;
(3)画出翻转后新的函数图像,由直线y=x+b,b<1确定出直线移动的范围,求出b的取值范围.
【点评】本题考查了由函数图像确定坐标,以及给出面积关系求点的坐标和直线与图像的交点问题,综合体现了数形结合的思想.
【分析】(1)求出根的判别式,即可得出答案;
(2)先化成顶点式,根据顶点坐标和平移的性质得出即可.
(3)求出翻折后所得图像的解析式,然后分别求出原图像和直线,翻折后所得图像与直线有一个交点时的m的值,即可求得新图像为G与直线y=x+2有三个交点时的m的取值.
【点评】本题考查了二次函数和x轴的交点问题,根的判别式,平移的性质,二次函数的图像与几何变换的应用,主要考查学生的理解能力和计算能力,题目比较好,有一定的难度.
-
pythonocc 求一条直线与一个梯形的交点的横坐标
2020-07-13 16:17:16直线为平行于X轴的一条直线。梯形为以Z轴为对称轴的梯形。附上代码。 # -*- coding: utf-8 -*- """ Created on Mon Jul 13 09:58:09 2020 @author: zxl """ from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_...坐标系为ZOX坐标系,X轴为横轴,Y轴为竖轴。直线为平行于X轴的一条直线。梯形为以Z轴为对称轴的梯形。附上代码。
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 13 09:58:09 2020@author: zxl
"""from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakePolygon, BRepBuilderAPI_MakeFace
from OCC.Core.gp import gp_Pnt, gp_Dir, gp_Pln
from OCC.Core.TopExp import TopExp_Explorer
from OCC.Core.TopAbs import TopAbs_EDGE
from OCC.Core.TopoDS import topods
from OCC.Core.Geom import Geom_Line
from OCC.Core.gp import gp
from OCC.Core.BRep import BRep_Tool
from OCC.Core.GeomAPI import GeomAPI_ExtremaCurveCurvep0 = gp_Pnt()
vnorm = gp_Dir(0, 1, 0) # 法向量,平行于Y轴的单位向量
aPlane = gp_Pln(p0, vnorm) #ZOX平面bcd = 150 #梯形的下底边长
tcd = 50 #梯形的上底边长
ht = 50 #梯形的高
offset = 0
z_of_trapezoid = 0 #梯形的底边的Z的坐标x0 = -0.5 * bcd + offset #梯形的左下角顶点的X坐标
x1 = 0.5 * bcd + offset #梯形的右下角顶点的X坐标
x2 = 0.5 * tcd + offset #梯形的右上角顶点的X坐标
x3 = -0.5 * tcd + offset #梯形的左上角顶点的X坐标
z0 = z_of_trapezoid # 梯形的下底的Z坐标
z1 = z_of_trapezoid + ht # 梯形的上底的Z坐标
aP1 = gp_Pnt(x0, 0.0, z0)
aP2 = gp_Pnt(x1, 0.0, z0)
aP3 = gp_Pnt(x2, 0.0, z1)
aP4 = gp_Pnt(x3, 0.0, z1)
aPolygon = BRepBuilderAPI_MakePolygon(aP1, aP2, aP3, aP4, True)
aTrapezoid = BRepBuilderAPI_MakeFace(aPlane, aPolygon.Wire()).Shape()#梯形面,类型为TopoDS_Face
aLine = Geom_Line(gp_Pnt(0.0, 0.0, 25), gp.DX()) # 梯形的中位线
print("type of aLine: ", type(aLine))anEdgeExplorer = TopExp_Explorer(aTrapezoid, TopAbs_EDGE)
start_pnts = [] #交点的X坐标的列表
while anEdgeExplorer.More(): # 有更多子形状去挖掘
anEdge = topods.Edge(anEdgeExplorer.Current()) # 当前被探索到的子形状是哪一个
#print("current edge: ", anEdge)
aCurve = BRep_Tool.Curve(anEdge)[0]
aFirst = BRep_Tool.Curve(anEdge)[1] # 这条边的起始点
aLast = BRep_Tool.Curve(anEdge)[2] # 这条边的终止点
#print("type of aCurve: ", type(aCurve))
#print("type of sec: ", type(sec), "sec: ", sec)
aExtrema = GeomAPI_ExtremaCurveCurve(aLine, aCurve, -1e308, 1e308, aFirst, aLast)#GeomAPI_ExtremaCurveCurve(C1, C2, U1min, U1max, U2min, U2max)
#C1 为曲线1,C2为曲线2,U1min, U1max是曲线1的起始点和终止点,U2min, U2max是曲线2的起始点和终止点,
# 这里因为C1是一条无限长的直线,所以是-1e308, 1e308。而C2的起始点和终止点是由BRep_Tool.Curve(anEdge)[1]和#BRep_Tool.Curve(anEdge)[2]得到
#print(type(aExtrema))
print("number of aExtrema: ", aExtrema.NbExtrema())
print("aExtrema.LowerDistance(): ", aExtrema.LowerDistance())
if aExtrema.NbExtrema() > 0 and aExtrema.LowerDistance() < 1e-10 : #两曲线有交点,且两曲线的最小距离为0,即有交点
print("if is in ")
for iPnt in range(aExtrema.NbExtrema()):
print("for is in ")
aPnt1 = gp_Pnt()
aPnt2 = gp_Pnt()
aExtrema.Points(iPnt + 1, aPnt1, aPnt2) #两个点的坐标
print("aPnt1: ", aPnt1)
if aPnt1.SquareDistance(aPnt2) < 1e-15 :#两个点是同一个点,即交点
start_pnts.append(aPnt1.X())
anEdgeExplorer.Next() # 下一个子形状
print("start_pnts: ", start_pnts) -
9.7数学与概率(三)——在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分
2015-08-07 16:02:43* 假定正方形的上下两条边与x轴平行。 */ /** * 考虑: * 线的准确含义,可能性有: * 1)由斜率和y轴截距确定; * 2)由这条边上的任意两点确定; * 3)线段,以正方形的边作为起点和终点。 * * .../**
* 功能:在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。
* 假定正方形的上下两条边与x轴平行。*/
/** * 考虑: * 线的准确含义,可能性有: * 1)由斜率和y轴截距确定; * 2)由这条边上的任意两点确定; * 3)线段,以正方形的边作为起点和终点。 * * 假设:这条线的端点应该落在正方形的边上。 * 思路:要将两个正方形对半分,这条线必须连接两个正方形的中心点。 */ public class Square { //正方形的四条边 int left; int right; int top; int bottem; int size; public static void main(String[] args) { // TODO Auto-generated method stub } //得到正方形的中心点的位置 public Point getMiddle(){ return new Point((this.left+this.right)/2.0,(this.top+this.bottem)/2); } //返回线段mid1和mid2的线段与square2的边相交的点,即从mid1到mid2画一条线,一直延伸置碰到square2的靠外的那条边。 public Point extend(Point mid1,Point mid2,int size){ //确定线段mid1->mid2的方向 int xdir=mid1.x<mid2.x?1:-1; int ydir=mid1.y<mid2.y?1:-1; //如果mid1和mid2的x坐标相同,计算斜率时,会抛出零异常,做特别处理 if(mid1.x==mid2.y) return new Point(mid2.x,mid2.y+ydir*size/2.0); //计算线段的斜率 double slope=(mid2.y-mid1.y)/(mid2.x-mid1.x); double x1=0; double y1=0; //计算相交点,注意斜率的取值 if(Math.abs(slope)==1){ x1=mid2.x+xdir*size/2.0; y1=mid2.y+ydir*size/2.0; }else if(Math.abs(slope)<1){ x1=mid2.x+xdir*size/2.0; y1=mid2.y+slope*ydir*(size/2.0);//注意方向 }else if(Math.abs(slope)>1){ x1=mid2.x+slope*xdir*(size/2.0); y1=mid2.y+ydir*size/2.0; } return new Point(x1,y1); } public MyLine cut(Square other){ //计算两个中心点之间的线段与正方形的边相交的位置 Point point1=extend(this.getMiddle(),other.getMiddle(),other.size); Point point2=extend(this.getMiddle(),other.getMiddle(),-other.size); Point point3=extend(other.getMiddle(),this.getMiddle(),this.size); Point point4=extend(other.getMiddle(),this.getMiddle(),-this.size); //找出线段的起点和终点 Point start=point1; Point end=point1; Point[] points={point1,point2,point3}; for(int i=0;i<points.length;i++){ if(points[i].x<start.x||points[i].x==start.x&&points[i].y<start.y) start=points[i]; else if(points[i].x>end.x||points[i].x==end.x&&points[i].y>end.y) end=points[i]; } return new MyLine(start,end); } } class MyLine{ Point start; Point end; public MyLine(Point start,Point end){ this.start=start; this.end=end; } } class Point{ double x; double y; public Point(double x,double y){ this.x=x; this.y=y; } }
-
圆的相切相交相离公式_高中数学:直线与圆
2021-01-15 16:56:56一、直线1、直线的倾斜角在平面直角坐标系中,当直线与x轴重合或平行时,规定倾斜角为0,对于与x轴相交的直线,把x轴绕着交点按逆时针方向转到和直线重合时所转的最小正角叫做直线的倾斜角,倾斜角的范围[0,π)。... -
判断几个点是否在同一条直线上(计算几何)
2018-02-26 19:27:23求两条直线的交点,只需把这两个二元一次方程联立求解,当这个联立方程组无解时,两直线平行;有无穷多解时,两直线重合;只有一解时,两直线相交于一点。常用直线向上方向与 X 轴正向的 夹角( 叫直线的倾斜角 )或... -
曲线绕x轴旋转曲面方程_几何代数50 ----柱面及其方程
2021-01-03 13:51:07图一1、柱面的定义在空间中,由平行于定方向且与一条定曲线相交的一族平行直线所构成的曲面叫做柱面.直观地,柱面就是由一条平行于直线 的直线沿曲线 连续平移而形成的平行直线族.动直线 叫做柱面的直母线,定曲线 ... -
程序员面试金典: 9.7数学与概率 7.5寻找能将将两个正方形对半分的直线
2017-01-05 18:53:07问题:在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。 分析:两个正方形的上下两条边都与x轴平行,那么这两个正方形平行。关键就是用直线对两个正方形... -
关于二维绘图时拾取某一直线的代码
2006-04-11 22:13:00这需要对直线和拾取时点进行旋转,旋转到直线与X轴平行,其主要的代码如下://检查一点是否在一条直线附近//Spoint是直线起点,Epoint是些终端点,Mpoint是拾取点,nRadius是半径bool CLine::Pick(CPoint S -
python 求某条线上特定x值或y值的点坐标方法
2021-01-01 12:10:38问题可以转换为:求一条垂直于x轴或平行于y轴的直线与该线的交点 import numpy as np import shapely.geometry as SG #某条线 list(zip(x,y))为线上的坐标点的list line = SG.LineString(list(zip(x,y))) #(1,0)... -
python 求某条线上特定x值或y值的点坐标
2017-11-13 16:12:58问题可以转换为:求一条垂直于x轴或平行于y轴的直线与该线的交点import numpy as np import shapely.geometry as SG#某条线 list(zip(x,y))为线上的坐标点的list line = SG.LineString(list(zip(x,y)))#(1,0)到(1,... -
直线平分正方形
2018-01-25 11:15:30假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),... -
程序员面试金典:平分的直线、穿点最多的直线
2017-07-22 09:49:21假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1... -
人教版高一数学必修一精选知识点总结5篇_精选.doc
2020-12-08 11:23:06人教版高一数学必修一精选知识点总结5篇 人教版... 3、直线的斜率: 一条直线的倾斜角α(α≠90°)的正切值叫做这条直线的斜率,斜率常用小写字母k表示,也就是k=tanα ⑴当直线l与x轴平行或重合时,α=0°,k=tan0.... -
平分的直线 牛客网 程序员面试金典 C++ Python
2018-09-17 00:30:51假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(... -
程序员面试金典——平分的直线
2017-05-03 15:34:34假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1... -
2020高二数学水平考知识点归纳_精选.doc
2020-12-08 13:06:26特别地,当直线与x轴平行或重合时,我们规定它的倾斜角为0度。 范围: 倾斜角的取值范围是0°≤α180°。 理解: (1)注意“两个方向”:直线向上的方向、x轴的正方向; (2)规定当直线和x轴平行或重合时,它的... -
高二数学知识点总结归纳5篇_精选.doc
2020-12-08 11:08:533、直线的斜率: 一条直线的倾斜角α(α≠90°)的正切值叫做这条直线的斜率,斜率常用小写字母k表示,也就是k=tanα ⑴当直线l与x轴平行或重合时,α=0°,k=tan0°=0; ⑵当直线l与x轴垂直时,α=90°,k不存在. 由此... -
高一数学必修一知识点总结归纳5篇分享_精选.doc
2020-12-08 11:19:40特别地,当直线与x轴平行或重合时,我们规定它的倾斜角为0度.因此,倾斜角的取值范围是0°≤α180° (2)直线的斜率 ①定义:倾斜角不是90°的直线,它的倾斜角的正切叫做这条直线的斜率.直线的斜率常用k表示.即.斜率... -
CF 314D Sereja and Straight Lines(旋转坐标轴+二分)
2019-01-08 08:35:53在平面上画两个相互垂直的直线,且已知一条与x轴夹角45度。画完之后,使得点到直线的距离的最大值最小。距离为|x1-x2|+|y1-y2|。 思路:(1)首先,将坐标轴旋转45度,那么点(x,y)的坐标变为(x-y,x+y)。然后就是画... -
高一数学必修一知识点梳理五篇分享_精选.doc
2020-12-08 11:22:19高一数学必修一知识点...特别地,当直线与x轴平行或重合时,我们规定它的倾斜角为0度.因此,倾斜角的取值范围是0°≤α180° (2)直线的斜率 ①定义:倾斜角不是90°的直线,它的倾斜角的正切叫做这条直线的斜率.直.... -
如何用法向量求点到平面距离_高中数学丨2020新标课本,空间向量与二面角所有知识点,一张表搞定...
2021-01-17 17:37:544、底面为平行四边形,常以一条边为x轴,并作一条与这一条边垂直的直线作为y轴。向量法求解二面角向量在数学和物理学中的应用很广泛,在解析几何与立体几何里的应用更为直接,用向量的方法特别便于研究空间里涉及... -
高二知识点数学总结归纳五篇_精选.doc
2020-12-08 11:32:27特别地,当直线与x轴平行或重合时,我们规定它的倾斜角为0度。因此,倾斜角的取值范围是0°≤α180° (2)直线的斜率 ①定义:倾斜角不是90°的直线,它的倾斜角的正切叫做这条直线的斜率。直线的斜率常用k表示。即... -
高二数学复习知识点梳理最新_精选.doc
2020-12-08 11:29:18特别地,当直线与x轴平行或重合时,我们规定它的倾斜角为0度。因此,倾斜角的取值范围是0°≤α180° (2)直线的斜率 ①定义:倾斜角不是90°的直线,它的倾斜角的正切叫做这条直线的斜率。直线的斜率常用k表示。即... -
careercup-数学与概率 7.5
2014-12-07 10:44:00假定正方形的上下两条边与x轴平行。 解法: 要将两个正方形对半分,这条线必须连接两个正方形的中心点。利用slope=(y1-y2)/(x1-x2)就能算出斜率。以两个中心点算出斜率后,就能以同一公式求得线段的起点和终点。..... -
黄冈中学高2数学教案
2010-09-04 23:23:52当直线与x轴平行或重合时,规定它的倾斜角为0°. (2)倾斜角相同的直线是一组平行线.确定一条直线的几何要素是:直线上的一个定点以及它的倾斜角,两者缺一不可. 2.斜率 (1)定义 倾斜角不是90°的直线,... -
2020最新高二数学知识点总结归纳5篇_精选.doc
2020-12-08 16:20:102020最新高二数学知识点总结归纳5篇 高中学习容量大,不但要掌握目前的知识,还要把...特别地,当直线l与x轴平行或重合时,规定=0. 2、倾斜角的取值范围:0180. 当直线l与x轴垂直时,=90. 3、直线的斜率: 一条直.... -
高二数学必背知识点总结大全_精选.doc
2020-12-08 11:12:15特别地,当直线与x轴平行或重合时,我们规定它的倾斜角为0度。因此,倾斜角的取值范围是0°≤α180° (2)直线的斜率 ①定义:倾斜角不是90°的直线,它的倾斜角的正切叫做这条直线的斜率。直线的斜率常用k表示。即... -
cross(idy002的神奇并查集)
2018-11-07 21:05:49有多少个不同的y就有多少条与x轴平行的直线,记为y条。所以总直线数是x+y条。每条直线可以选或不选,所以每个联通块的答案为2^(x+y).但是对于边数比点数小的联通块来说(边数=点数-1),x+y = 点数+1,不...