目录

一、基本公式

A、直线公式

a.推理

B、向量垂直公式

a.推理

二、结合公式1【直线公式】与公式2【向量垂直公式】

1.原始计算

2.替换计算

三、简化计算结果

四、公式在C#代码中的应用


一、基本公式

A、直线公式

  •  是直线  上的其中一点;
  •  是直线  上的另外一点;
  •  是直线  外的一点;
  •  是直线  外的一点   在 上的投影;

a.推理

B、向量垂直公式

  •  是直线  上的其中一点;
  •  是直线  上的另外一点;
  •  是直线  外的一点;
  •  是直线  外的一点   在 上的投影;

a.推理

二、结合公式1【直线公式】与公式2【向量垂直公式】

1.原始计算

2.替换计算

三、简化计算结果

其中:

  •  是直线  上的其中一点;
  •  是直线  上的另外一点;
  •  是直线  外的一点;
  •  是直线  外的一点   在 上的投影;
  •  是   到  的向量  ,

四、公式在C#代码中的应用

        /// <summary>/// 求直线上的投影点/// </summary>/// <param name="P1">直线上的点1</param>/// <param name="P2">直线上的点2</param>/// <param name="P3">直线外的点</param>/// <returns></returns>public PointF  LinePointProjection(PointF P1,PointF P2,PointF P3){double a1 = P2.X - P1.X;double b1 = P2.Y - P1.Y;double y1 = P1.Y;double x1 = P1.X;double y2 = P2.Y;double x2 = P2.X;double y3 = P3.Y;double x3 = P3.X;double a1a1 = Math.Pow(a1, 2.0);double b1b1 = Math.Pow(b1, 2.0);double denominator = a1a1 + b1b1;if (denominator == 0) return P3;double x1y2 = x1 * y2;double x2y1 = x2 * y1;double a1b1 = a1 * b1;double moleculey = b1b1 * y3 + a1b1 * x3 - a1 * x1y2 + a1 * x2y1;double moleculex = a1a1 * x3 + a1b1 * y3 - b1 * x2y1 + b1 * x1y2;return new PointF((float)(moleculex/denominator),(float)(moleculey/denominator));}

【C#】(二维) 直线外一点在直线上的投影点相关推荐

  1. c++ 已知直线外一点,求对称点

    下面通过两种直线方程的形式,求解点关于直线的距离.垂足.对称点公式. 问题描述1: 已知点的坐标(x0,y0),直线的方程为Ax+By+C = 0: 求点到直线上的距离d.点在直线上的垂足(x, y) ...

  2. C++实现求两条直线的交点,以及已知直线外一点求垂足

    已知直线上的两个点或者已知直线的斜率和截距两种情况下求交点和垂足. 两种情况来自于实际求解中可以找到边界上的两个点列出直线方程,也可以用更准确的求法即获取多个点拟合一条直线. 1.求两直线的交点(两点 ...

  3. 最最完整的二维码生成教程:MFC下利用libqrencode库生成二维码,显示在屏幕上并保存

    最近做项目的时候,需要用MFC写一个二维码生成器,要求根据指定内容生成二维码,显示在屏幕上,并能够保存在电脑中. 一. libqrencode库编译 libqrencode是一个日本人写的生成二维码的 ...

  4. js过圆外一点的直线与圆相切的切点坐标计算

    由圆外一点P1(x1,y1)向圆(x - a)2 + (y - b)2 = R2作切线,切线与圆相切的切点是P0(x0,y0) 方法一: 公式法 先求直线P0P1直线方程 因为P0P1⊥OP0 向量O ...

  5. 《AutoCAD 2016中文版从入门到精通》——第2章 简单二维绘制命令2.1 直线类命令...

    本节书摘来自异步社区<AutoCAD 2016中文版从入门到精通>一书中的第2章,第2.1节,作者: 贾雪艳 , 朱爱华 更多章节内容可以访问云栖社区"异步社区"公众号 ...

  6. 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版

    2019独角兽企业重金招聘Python工程师标准>>> 这个方法最开始用在还没有"微信开放平台"的时候,现在也有不少网站在用,简单说就是生成一个临时二维码放到服务 ...

  7. 一行代码用表情包制作炫酷二维码,详细教程奉上,包学会

    想自己动手 制作一款专属的炫酷二维码吗? (初代奥特曼震场子) 咱们开始学习吧~ 1.用"运行-cmd"安装myqr包 基本环境是python 3.x,但建议学习python的同学 ...

  8. matlab 二维数组转一维数组中,将二维数组映射到一维数组上

    C语言使用multidimensional array的行顺序 要用单维数组来模拟这个,可以将行索引乘以宽度,然后添加列索引: int array[width * height]; int SetEl ...

  9. 二维码技术在证卡上的应用

    二维码技术自20世纪80年代末问世以来,发展十分迅速,已广泛应用在交通运输.图书.商业流通.仓储.铁路.生产自动化.疫情防疫等领域.随着物联网技术的发展和兴起新形势下的现代化管理要求,计算机技术和二维 ...

最新文章

  1. 现代密码学4.1--消息完整性
  2. 【超时原因】1047 Student List for Course (25 分)
  3. python3 https_python3安装,支持openssl,支持采集https
  4. 080520 雨 大风
  5. [学习笔记] JavaScript 检测数组
  6. 2003系统安全配置
  7. 达梦之路——基于Linux平台(redhat)安装部署DM7单库
  8. python多线程抢票_抢票 抢票 抢票!Python大牛带你实现12306全自动抢票
  9. OpenGL读取灰度图生成地形
  10. 如何更改itunes备份位置_Mac怎么修改iTunes的备份路径 如何在 Mac 中修改iTunes的备份路径...
  11. 2.前端开发命名规范
  12. 软件测试工程师薪酬水平,软件测试工程师工资怎么样?高吗?
  13. java ODBC连接MYSQL数据库
  14. .crx文件怎么解压
  15. mnn模型从训练-转换-预测
  16. TechEd2011之游园录(1)
  17. html中正文缩进2个字符
  18. 互联网家装是伪命题?
  19. CS61B学习笔记——proj2 gitlet的实现
  20. rt_thread nano GD32F407移植

热门文章

  1. 女孩学计算机软件工程,女生学软件工程好吗 就业方向有哪些
  2. 联通研究院霍龙社博士深度解析“AI项目到底适不适合开源”
  3. NoteExpree对参考文献格式修改
  4. OpenCVforUnity中的图片轮廓对比——MatchShapesExample案例
  5. Android基础入门教程——8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash
  6. 4.1 目标检测基础
  7. JavaScript 进阶——井字棋游戏智能AI搭建
  8. 高并发,你真的理解透彻了吗?
  9. @ConfigurationProperties注解使用及乱码问题解决
  10. Bert模型介绍及代码解析(pytorch)