点在指定直线的投影点,即过点作一垂直于指定直线的直线,与指定直线的交点即为所求。这个问题其实回归到两条垂直直线的交点问题,回到最原始的初中几何知识,复习下

如图示

首先我们明确下已知条件,指定直线上任一点A,直线斜率k,点C,求点B

说到斜率,就有不存在的情况,如图(2),显然这种情况B的横坐标=A的横坐标,B的纵坐标=C的纵坐标

本文重点讨论第一种情况,其实也很简单,联立两条直线求解即可

直线AB方程式即y-yA=k*(x-xA)

∵两条垂直直线的斜率乘积 = -1

∴由AB线斜率为k可知BC线斜率为-1/k,可知直线BC方程式为

y-yC=-1/k*(x-xC)

联立方程组解得

xB = (k * xA+ xC / k + yC - yA) / (1 / k + k)

由xB代入BC方程即可得yB

复制代码 代码如下:

///

/// 求直线外一点到该直线的投影点

///

/// 线上任一点

/// 直线斜率

/// 线外指定点

/// 投影点

protected void GetProjectivePoint(PointF pLine, double k, PointF pOut, ref PointF pProject)

{

if (k == 0) //垂线斜率不存在情况

{

pProject.X = pOut.X;

pProject.Y = pLine.Y;

}

else

{

pProject.X = (float)((k * pLine.X + pOut.X / k + pOut.Y - pLine.Y) / (1 / k + k));

pProject.Y = (float)(-1 / k * (pProject.X - pOut.X) + pOut.Y);

}

}

时间: 2013-12-07

c#垂直投影法_c#求点到直线的投影点坐标相关推荐

  1. c#垂直投影法_C#教程之c#求点到直线的投影点坐标

    点在指定直线的投影点,即过点作一垂直于指定直线的直线,与指定直线的交点即为所求.这个问题其实回归到两条垂直直线的交点问题,回到最原始的初中几何知识,复习下 如图示 首先我们明确下已知条件,指定直线上任 ...

  2. 利用matlab求点到直线距离和垂足坐标(开源,易使用修改)

    利用matlab求点C到向量AB的垂直距离以及垂足E点坐标 A.B两点构成向量AB:C为任一点.求C点到向量AB的垂直距离与C点到AB的垂足坐标. 结果说明:C2ABJvLi--C点到向量AB的垂直距 ...

  3. 牛客小白月赛2-B小马过河(求点到直线的垂足)

    题目链接 求点到直线的垂足分为 空间 .平面 原理: 空间: #include<iostream> #include<cmath> using namespace std; c ...

  4. java点到直线的投影点到经纬度_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...

    12分高考答题必刷题型,"空间向量分析点到线的距离问题" 立体几何大题 立体几何在各地高考中,基本都占据20分以上的比例,在解答方法上,小题技巧相对比较丰富,但大题解答上有明显的规 ...

  5. 点到直线的投影公式_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...

    12分高考答题必刷题型,"空间向量分析点到线的距离问题" 立体几何大题 立体几何在各地高考中,基本都占据20分以上的比例,在解答方法上,小题技巧相对比较丰富,但大题解答上有明显的规 ...

  6. 点到直线的投影公式_2021高考复习资料:高中数学必备公式与知识点汇总

    向学霸进军整理出2021高考复习资料之高中数学必备公式与知识点,希望给2021高考生和家长带来帮助. 1 函数的单调性 2 函数的奇偶性 3 函数在某处的导数的几何意义 4 几种常见函数的导数 5 导 ...

  7. Python实现三维点到直线的投影

    首先要知道原理 ,今天机器学习作业要将三维的点投影到三维直线上,以下记录方法 方法借鉴:3D空间点到直线的距离 - 知乎 (zhihu.com)第一种方法 x1.x2存的是数据集,d.t是直线的参数 ...

  8. 投影法快速求二叉树的三种遍历

    二叉树的遍历,如果是手工画图,还可以使用投影法快速得到遍历序列. 以下图二叉树为例,讲解投影法快速得到遍历序列的过程. (1)          中序遍历 中序遍历就像在无风的情况下,太阳直射,将所有 ...

  9. python输入两点坐标求距离_大一Python课的习题,输入两点,建立起直线方程y=kx+b。输入第3点,求点到直线的距离。这怎...

    展开全部 # -*- coding:utf-8 -*- import math point_a=raw_input('please input point A coordinates: For Exa ...

最新文章

  1. linux内核kconfig objs,linux内核中Kconfig和Makefile 详解
  2. 每天一个linux命令(56):netstat命令
  3. Installation of Apache HTTPD
  4. 如何判断mysql死锁_MySQL 死锁问题分析
  5. mybatis 配置文件中,collection 和 association 的对应关系
  6. Sql Server系列:日期和时间函数
  7. (转)JAVA实现Windows拨号、IP切换
  8. boost boost::asio::read read_some receive 区别
  9. java button 点击事件_android_button按钮onclick点击事件的几种写法
  10. 移动终端基带芯片的基本架构介绍(三):移动终端基带芯片详细架构
  11. C语言程序设计预备作业
  12. 斗兽棋在线游戏HTML5小游戏,js --斗兽棋游戏
  13. 母牛生小牛问题-字节跳动笔试题
  14. 局域网内打印机打印只能打印一页或是几页的解决办法
  15. laravel-admin引用wangEditor编辑器 使用二:上传视频/音频(2)
  16. linux下matlab2014卸载
  17. 三元:将对20万名贫困家庭儿童进行健康扶贫
  18. 无线网桥连接服务器,无线网桥
  19. c语言编程汽车售票系统,C语言汽车售票系统实践报告.doc
  20. solaris10-查看硬件信息

热门文章

  1. 交换机学习之划VLAN
  2. 关于11月28日CSDN遭受网络攻击的情况说明
  3. 警告:面临潜在的安全风险_HTML5网站展示:48个潜在的Flash演示
  4. 几种常用网络请求汇总
  5. js 时间戳与时间格式的转化, xx天xx小时xx分倒计时,距离当前时间多久
  6. wav to image concat 版
  7. RandomAccessFile、FileChannel和MappedByteBuffer
  8. 深度学习目标检测数据VisDrone2019(to yolo / voc / coco)---MMDetection数据篇
  9. 函数的返回值——数组返回
  10. 月薪80k阿里架构师:给迷茫的JAVA一些中肯建议(附学习路线图)