精华内容
下载资源
问答
  • 平行线的k斜率相等: l1: y= kx+b; l2: y =kx+c 两条互相垂直的直线,其斜率是互为负倒数. 即 k1=-1/k2. 或 k1·k2=-1. 相交点坐标 a为跟随移动的点,c为固定点,move为移动点,求过一点d与直线垂直的交点? ...

    平面内两条线平行条件:


    平行线的k斜率相等: l1: y= kx+b;     l2: y =kx+c 


    两条互相垂直的直线,其斜率是互为负倒数.


    即 k1=-1/k2.
    或 k1·k2=-1.

    相交点坐标


    a为跟随移动的点,c为固定点,move为移动点,求过一点d与直线垂直的交点?
    ps:
    y = kx + b , 已知两点求ac bc所在直线方程
        y = -x/k +b2 直线垂线方程
    
            let k1 = (a.y-c.y)/(a.x- c.x);
            let b1 = c.y-(a.y-c.y)/(a.x- c.x)*c.x;
            let b2 = move.y + move.x/k1
            let d = {};
            d.x = (b2/k1 - b1/k1)/(1+(1/Math.pow(k1,2)));
            d.y = k1*d.x+b1;
    以上方式是也是对已知一固定点c,c两端延伸出两条线段并且垂直,move点跟随鼠标移动,那么未知点有两个a和b以上求出了d,即是a移动后的点新位置坐标那么b怎么求,同理如下:
            // 求 e
            let k2 = (b.y-c.y)/(b.x- c.x);
            let b3 = c.y-(b.y-c.y)/(b.x- c.x)*c.x;
            let b4 = move.y + move.x/k2
            let e = {};
            e.x = (b4/k2 - b3/k2)/(1+(1/Math.pow(k2,2)));
            e.y = k2*e.x+b3;
    实践可用靠谱
    展开全文
  • // 得到直线的tan斜率 double GetTanOfLine( LINE line ) { double x_dis = line.pt0.x - line.pt1.x; if ( x_dis == 0.0 ) return 10e9; return (line.pt0.y - line.pt1.y) / x_...// 得到两条平行线之间的距离 dou
    struct LINE
    {
    	CvPoint pt0;
    	CvPoint pt1;
    	LINE( CvPoint pta, CvPoint ptb )
    	{
    		pt0 = pta;
    		pt1 = ptb;
    	}
    	LINE()
    	{
    		pt0.x = pt0.y = 0;
    		pt1.x = pt1.y = 0;
    	}
    };
    
    // 得到直线的tan斜率
    double GetTanOfLine( LINE line )
    {
    	double x_dis = line.pt0.x - line.pt1.x;
    	if ( x_dis == 0.0 ) return 10e9;
    	return (line.pt0.y - line.pt1.y) / x_dis;
    }
    
    
    // 得到两条平行线之间的距离
    double GetDisOfParallelLines( LINE line0, LINE line1 )
    {
    	CvPoint midPoint = cvPoint( (line0.pt0.x + line0.pt1.x)/2, (line0.pt0.y + line0.pt1.y)/2 ); // 中点
    	double x_dis = line1.pt0.x - line1.pt1.x;
    	if ( x_dis == 0.0 ) return fabs((double)(midPoint.x - line0.pt0.x)); // 如果line1 垂直x轴
    
    	double a = (line1.pt0.y - line1.pt1.y) / x_dis;
    	double b = line1.pt0.y - (line1.pt0.x * a);
    	return fabs(a * midPoint.x - midPoint.y + b) / sqrt(a * a + 1);
    }
    
    
    // 判断两直线是否平行
    bool IsParallelLines( LINE line0, LINE line1 )
    {
    #define LIMIT (1.1547 / 3) #近似平行线的斜率之差的范围
    
    	double angleTan0 = GetTanOfLine( line0 );
    	double angleTan1 = GetTanOfLine( line1 );
    	if ( fabs(angleTan0 - angleTan1) < (double)LIMIT )
    	{
    		return 1;
    	}
    	return 0;
    }
    

    展开全文
  • c#画平行线和垂线的代码

    千次阅读 2017-02-05 15:14:41
    参考如下绘制平行线的代码 private Point downPoint = Point.Empty; // 鼠标按下的坐标 private Point movePoint = Point.Empty; // 鼠标移动的坐标 private double lineSpace = 12.0f; // 线条之间的距离 private ...
    参考如下绘制平行线的代码
    private Point downPoint = Point.Empty; // 鼠标按下的坐标
    private Point movePoint = Point.Empty; // 鼠标移动的坐标
    private double lineSpace = 12.0f; // 线条之间的距离
    private Point offsetPointA = Point.Empty; // 偏移坐标A
    private Point offsetPointB = Point.Empty; // 偏移坐标B
    private double PointToAngle(Point AOrigin, Point APoint)
    {
        if (APoint.X == AOrigin.X)
            if (APoint.Y > AOrigin.Y)
                return Math.PI * 0.5f;
            else return Math.PI * 1.5f;
        else if (APoint.Y == AOrigin.Y)
            if (APoint.X > AOrigin.X)
                return 0;
            else return Math.PI;
        else
        {
            double Result = Math.Atan((double)(AOrigin.Y - APoint.Y) /
                (AOrigin.X - APoint.X));
            if ((APoint.X < AOrigin.X) && (APoint.Y > AOrigin.Y))
                return Result + Math.PI;
            else if ((APoint.X < AOrigin.X) && (APoint.Y < AOrigin.Y))
                return Result + Math.PI;
            else if ((APoint.X > AOrigin.X) && (APoint.Y < AOrigin.Y))
                return Result + 2 * Math.PI;
            else return Result;
        }
    } /* PointToAngle */
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        downPoint = e.Location;
    }
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        
        if (downPoint != Point.Empty)
        {
            Graphics vGraphics = CreateGraphics();
            if (movePoint != Point.Empty)
            {
                vGraphics.DrawLine(new Pen(BackColor), offsetPointA,
                    new Point(movePoint.X + offsetPointA.X - downPoint.X,
                    movePoint.Y + offsetPointA.Y - downPoint.Y));
                vGraphics.DrawLine(new Pen(BackColor), offsetPointB,
                    new Point(movePoint.X + offsetPointB.X - downPoint.X,
                    movePoint.Y + offsetPointB.Y - downPoint.Y));
                vGraphics.DrawLine(new Pen(BackColor), downPoint, movePoint);
            }
            movePoint = e.Location;
            double angle = PointToAngle(downPoint, movePoint);
            offsetPointA.X = (int)(Math.Cos(angle + 0.5f * Math.PI) * lineSpace + 
                downPoint.X);
            offsetPointA.Y = (int)(Math.Sin(angle + 0.5f * Math.PI) * lineSpace + 
                downPoint.Y);
            offsetPointB.X = (int)(Math.Cos(angle - 0.5f * Math.PI) * lineSpace + 
                downPoint.X);
            offsetPointB.Y = (int)(Math.Sin(angle - 0.5f * Math.PI) * lineSpace + 
                downPoint.Y);
            
            vGraphics.DrawLine(Pens.Red, offsetPointA, 
                new Point(movePoint.X + offsetPointA.X - downPoint.X,
                movePoint.Y + offsetPointA.Y - downPoint.Y));
            vGraphics.DrawLine(Pens.Red, offsetPointB,
                new Point(movePoint.X + offsetPointB.X - downPoint.X,
                movePoint.Y + offsetPointB.Y - downPoint.Y));        vGraphics.DrawLine(Pens.Blue, downPoint, movePoint);
            vGraphics.Dispose();
        }
    }
    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
        downPoint = Point.Empty;
    }
    垂线的代码只要参照如上代码将角度旋转90度即可

    展开全文
  • 判断两线段是否平行

    2019-10-01 23:13:18
    //对于垂直线段暂时没有作考虑,如果需要后续加上判断即可,应该不难 //author:challenKing //data:2010-07-06 class test { public static void main(String[] args) { boolean xiangjiao = xiangjiao(11,...

    //判断两条线段是否相交的测试代码 //对于垂直的线段暂时没有作考虑,如果需要后续加上判断即可,应该不难 //author:challenKing //data:2010-07-06 class test { public static void main(String[] args) { boolean xiangjiao = xiangjiao(11,11,12,12,21,21,22,22); System.out.println(xiangjiao); } //分别给出两条线段的两个点,判断是否相交 static boolean xiangjiao(int x11, int y11, int x12, int y12, int x21, int y21, int x22, int y22) { float slope1=0,slope2=0,slope3=0,slope4=0; if((x12>x11&&y12>y11)||(x12<x11&&y12<y11)){ int y = Math.abs(y12-y11); int x = Math.abs(x12-x11); slope1 = (float)y/x; } if((x22>x21&&y22>y21)||(x22<x21&&y22<y21)){ int y = Math.abs(y22-y21); int x = Math.abs(x22-x21); slope2 = (float)y/x; } if((x11>x12&&y11<y12) || (x11<x12&y11>y12)){ int y = y12-y11; int x = x12-x11; slope3 = (float)y/x; } if((x21>x22&&y21<y22) || (x21<x22&y21>y22)){ int y = y22-y21; int x = x22-x21; slope4 = (float)y/x; } if(slope1!=0&&slope2!=0){ if(slope1 == slope2){ return true; } else return false; } else if(slope3!=0&&slope4!=0){ if(slope3 == slope4){ return true; } else return false; } else return false; } }

     

    遇到了一个笔试的题目试着做一做,也不知道是否正确或者逻辑是否清晰,忘看了的大大们给出意见吧!谢谢!

    我想还有一个问题就是求斜率的时候是用的除法,应该会存在精度的问题!还有就是当线段平行x轴或者y轴的情况没有考虑到。

    转载于:https://www.cnblogs.com/ileimingGG/archive/2010/07/08/7435820.html

    展开全文
  • 三条平行线与等边三角形

    千次阅读 2019-05-15 16:56:38
    原题是:平面上有任意三条平行线,使用尺规则作图画出一个等边三角形,使三角形的三个顶点分别在三条平行线上。 画法有好多种,搜集网上的一些画法,先介绍4种,再讨论一下三角形连长与平等线距离的关系,最后讨论...
  • 已知向量a(x1,y1,z1)、b(x2,y2,z2) 判断垂直,需要点积为0。公式为: a*b=x1x2+y1y2+z1z2=0 在Revit中,
  • 相交线垂直(1)

    2020-02-26 18:22:00
    相交线: 1.概念 在同一平面内,两条直线的位置关系有相交和平行两种。如果两条直线只有一个公共点时,称这两条直线相交。 这里一定要注意:是在同一平面内。这是几何问题,当然就是在同一个平面内,而不是两上平面内....
  • 相交线 如图: 直线AB与直线CD相交,形成四个角:角1、角2、角3、角4。 角1与角2互为补角,所以角1+角2=180度;角2与角3互为补角,所以角2+角3=180度;所以角1=角3。 角1与角3顶点相对,互为对顶角,根据上面的讨论...
  • 现实中平行的直线会在照片中交于一点(完全水平的除外),通过该交点和摄像机位置的连线即可确定摄像头偏离平行线的夹角,可以参考修改为检测小车航线角(偏离车道线的夹角)。 效果图: /********************...
  • 题意:给了n条线段线段不重复,而且不是竖线就是横线,问这n条线段能围城多少个矩形。 做法:首先,由于n有5000,对半开枚举横线和竖线是不行的。 我们这样考虑,我们先把竖线和横线分别存储起来。然后可以往...
  • 设一段折线a b c与其平行折线 a ' b ~ c垂直距--&gt;接下图:       html+js+googlemap实现源码(实现了自画折线的两条等距平行线及包围起来的多边形区域): &lt;!DOCTYPE ...
  • N条线段求交的扫描线算法

    千次阅读 2020-03-06 10:07:55
    N条线段求交的扫描线算法 在对图进行计算时,很常用的一个操作就是求若干条线段的交点,比如对图的叠加、截窗,需要频繁地计算线段交点,如果求交算法效率很低,上层的算法再优秀也表现不出好的性能。 先考虑一...
  • 5.1 相交线 5.1.1 相交线 ∠1和∠2有一条公共边0C,它们的另-边互为反向延长线(∠1 和∠2互补),具有这种关系的两个 角,互为邻补角(adjacent angles on a stright line). ∠1和∠3有一个公共顶点O,并且...
  • word文档中画垂直或水平的线条 点击插入——形状,选择直线,按住shift键再画直线即可画出垂直或水平线条。 posted @ 2018-05-15 17:49 stujike123456 阅读(...) ...
  • 已知点 A(x1, y1) 和点 B(x2, y2), 求线段AB的垂直平分线. (求线段垂直平分线)(求线段的中垂线) 1. 求得直线AB的斜率k, 则可以求得中垂线的斜率为 -1 / k. (垂直则斜率是负倒数)(如果k存在且 k != 0) 2. 线段AB的...
  • 三维空间中垂直平面映射到xy平面是一条线段,三维线段映射到xy平面,得到两条xy平面的两条线段。   计算xy平面中两条线段的交点分为两部分内容: 1.判断两条线段是否相交 ...2.计算线段的交点 ...
  • 基于回旋曲线的平行泊车路径规划

    千次阅读 2020-05-10 17:48:49
    综合考虑汽车运动学约束、泊车过程中碰撞约束和计算实时性等要求,对基于回旋曲线的平行泊车路径规划方法进行了详细分析。 1、基于圆弧-直线组合方式推导出平行泊车可行泊车起始区域边界; 2、固定回旋曲线的分析; ...
  • poj 1269 线段相交/平行

    2014-12-11 21:54:00
    注意原题中说的线段其实要当成没有端点的直线。被坑了= = 1 #include <cmath> 2 #include <cstdio> 3 #include <iostream> 4 #include <cstring> 5 using namespace std; 6 ....
  • //垂直线 Mat dst2 = new Mat ( src . size ( ) , src . type ( ) ) ; Imgproc . erode ( image , dst2 , vline ) ; Imgproc . dilate ( image , dst2 , vline ) ; HighGui . imshow ( "垂直...
  • 给你一些平行线和竖直线 问你在边长为1e6正方形内有几个密闭空间 题目思路 经过观察发现 密闭空间数量=每条线交点数量+两端都达到正方形边界的线数量+1 考虑运用扫描线思想 先将水平线存入 左端点为入点 右...
  • 功能需求:计算图像中的直线,并过滤掉水平和垂直的直线。源码#include #include #include <string>#include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui...
  • POJ - Picture(线段树&扫描线)

    千次阅读 2019-09-05 18:03:02
    初始化所有节点所有变量为0,然后从下到上遍历每个扫描线,依次更新并求出相邻两条扫描线之间的周长,周长包括竖边和横边,其中横边长为|更新后线段树总覆盖区域-更新前线段树总覆盖区域|,竖边总长为更新前不...
  • 1 function judgeIntersect... 5 //两个线段为对角线组成的矩形,如果这两个矩形没有重叠的部分,那么两条线段是不可能出现重叠的 6 7 //这里的确如此,这一步是判定两矩形是否相交 8 //1.线段ab的低点低于c...
  • Echarts添加一条垂直于x轴的直线

    千次阅读 2020-01-14 11:43:37
    name: '平行于y轴的趋势线', type: 'line', markLine: { itemStyle: { //盒须图样式。 }, name: 'cc', //yAxisIndex: 0, // symbol:'none',//去掉箭头 data: [[ { coord: ['x轴坐标', 0] }, { coord: ['x...
  • 碰撞检测:判断线段相交

    千次阅读 2019-02-26 19:02:42
    3D 叉乘的结果是一个 3D 向量,这个向量垂直于参与运算的2个向量的法向量。 3D 叉乘计算公式:( a.y * b.z - b.y * a.z , a.z * b.x - b.z * a.x , a.x * b.y - b.x * a.y ) 2D叉乘: 2...
  •   已知两条直线l1(x1,y1,x2,y2)l_1(x_1,y_1,x_2,y_2)l1​(x1​,y1​,x2​,y2​)和l2(x3,y3,x4,y4)l_2(x_3,y_3,x_4,y_4)l2​(x3​,y3​,x4​,y4​),现希望判断l1l_1l1​与l2l_2l2​是否平行。若平行,计算出两条...
  • 这个时候就是要用线段树+扫描线了 这个东西关键由以下内容构成 : 1.扫描序: 线段树维护的内容一般是每条x轴(或y轴上)在宽度限定范围内最多有几个点,要对点逐一扫描 扫描(updata)之前要根据扫描的顺序...
  • 垂直泊车轨迹规划

    千次阅读 2019-07-08 22:54:20
    垂直泊车规划简介 垂直泊车即车辆由一定位置,通过横向运动和纵向运动,使得车辆由初始位置,最终垂直停到车位内。车辆检测完车位后,并停车结束后,需要对车辆进行轨迹规划。轨迹规划的目的是为了给出最佳的泊车入...
  • 本题是 线段树 + 扫描线 的典型例题, 是十分经典的模版题. 分析: 例如需要求下图所示的矩形的面积总和: 我们不妨将所有矩形的所有边都延长, 然后将整个坐标轴划分成一个个小区域: 然后再将这些小区域按照垂直于x轴...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,354
精华内容 1,741
关键字:

平行线之间垂直线段