编程这么久了还没有一个自己常用的数学库,每每需要求解什么算法,都在网上查找相关资料,不过好处是可以复习一些已经忘却很久的知识,体验一下温故而知新。

背景知识

向量积,已知向量

a=(a1,a2,a3) b=(b1,b2,b3)

其向量积可表示为:

a×b=(a2b3-a3b2,a3b1-a1b3,a1b2-a2b1)

问题抽象

已知三点 P1(x1,y1,y1),P2(x2,y2,y2),P3(x3,y3,y3)。要求求出这三个点构成平面的法向量。

高中知识解法

我们知道法向量是和平面垂直的,因此法向量也和该平面上任意一条向量垂直,即点乘积为 0。
利用这个性质,我们可以构造两个方程,此时我们不妨设法向量 n→=(x,y,z) 。

将 P1 P2 P3​ 坐标带入即可。

然后我们不妨假设 x=1, 这样即可求出 x y z(三个方程三个未知量)。

大学知识解法

具体代码

 //计算三点成面的法向量 三个点v1,v2,v3,法向量vnvoid GetNormal(const Vec3d& v1, const Vec3d& v2, const Vec3d& v3, Vec3d &vn)
 {
     double na = (v2.y - v1.y)*(v3.z - v1.z) - (v2.z - v1.z)*(v3.y - v1.y);
     double nb = (v2.z - v1.z)*(v3.x - v1.x) - (v2.x - v1.x)*(v3.z - v1.z);
     double nc = (v2.x - v1.x)*(v3.y - v1.y) - (v2.y - v1.y)*(v3.x - v1.x);
 //平面法向量    vn.Set(na, nb, nc);
 }

转载于:https://www.cnblogs.com/ice-arrow/p/11120405.html

按右手定则求已经知三点的法向量相关推荐

  1. 知三点求平面 || 点到平面的距离

    知三点求平面 点到平面的距离 double x,y,z;cin>>x>>y>>z;double p1x,p1y,p1z,p2x,p2y,p2z,p3x,p3y,p3 ...

  2. 已知三点求平面方程、平面法向量和点到平面的距离

    已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1 ...

  3. matlab已知三点求夹角,已知3点如何求其中两点对第3点的夹角

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:已知3点如何求其中两点对第3点的夹角? 问题详情:有3个问题:1)已知3点如何求其中两点对第3点的夹角?2)如何回答:1)已知3点求 ...

  4. 已知三点求平面方程、平面法向量和点到平面的距离(转载)

    已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1 ...

  5. 已知三点空间直角坐标求空间平面方程

    已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1 ...

  6. 已知三个点坐标求 三角形面积 || 求任意多边形面积公式||判断点在直线的左侧还是右侧

    已知三个点坐标求 三角形面积 由A-->B-->C-->A 按逆时针方向转.(行列式书写要求) 设三角形的面积为S 则S=(1/2)*(下面行列式) |x1 y1 1| |x2 y2 ...

  7. 已知三点求圆心与半径

    已知三点求圆心与半径  kezunhai@gmail.com http://blog.csdn.net/kezunhai 在计算机图像图形学中,经常会用到求圆心或圆半径的情况,本文介绍一种已知三个点求 ...

  8. C#已知三点求圆方程算法

    如果不赶时间可以自己推算出算式或者直接参考另一个博主的文章: 三点确定一个圆的计算方法_Ivan 的专栏-CSDN博客_三点确定一个圆 程序完整部分<C#已知三点求圆方程算法.rar>已经 ...

  9. 已知三点求圆心和半径

    https://blog.csdn.net/youhuakongzhi/article/details/86474619 https://blog.csdn.net/qq_43572555/artic ...

  10. C++里已知三个三维点,求他们的平面方程,怎么做?

    已知三个点坐标为P1(x1,y1,z1), P2(x2,y2,z2), P3(x3,y3,z3) 所以可以设方程为A(x - x1) + B(y - y1) + C(z - z1) = 0 (点法式) ...

最新文章

  1. CSS3 Animation(下)
  2. C语言记录元音字母的位置,算法训练 确定元音字母位置
  3. SSIM与PSNR的计算方式
  4. vue 封装dialog_自己封装dialog组件
  5. systemtap执行过程中报probe timer.profile registration error
  6. 七种场景下的软件作业量估计
  7. Spring IOC中bean标签和管理对象细节
  8. OpenDDS 编译
  9. 网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
  10. 基于FPGA的SRIO核的使用
  11. 空间解析几何 | 向量、数量积、向量积、混合积、距离公式
  12. NPOI操作Excel类代码(打开 插入 设置行列宽 合并单元格 增删改工作表 保存等等) .NET4.5
  13. python+mysql逆向_Python js逆向 爬取X天下数据,好好看,好好学
  14. 吴冠中的一类国画:盛世的迷思
  15. python微信远程控制摄像头_python实现微信远程控制电脑
  16. 【转】SSL协议、SET协议、HTTPS简介
  17. 埃尔米特多项式 (Hermite Polynomials)简介(1)
  18. 太恐怖了 两天搞定一个项目 Java Web MVC 网络商城教程+源代码
  19. iOS开发小记:初次接入环信SDK3.0时遇到的问题及解决办法汇总
  20. hbase排序 ASCII码对照表

热门文章

  1. html动画 箭头线条,纯CSS3实现的箭头图标和箭头循环动画
  2. kali桌面的安装与切换
  3. Windows Installer (无法访问你试图使用功能所在的网络位置)问题
  4. 《开店有讲究》读书笔记
  5. php 获取支付宝账号密码,php支付宝单笔转账到支付宝账户,用户提现业务-Go语言中文社区...
  6. 【AI视野·今日CV 计算机视觉论文速览 第241期】Wed, 1 Dec 2021
  7. 公共DNS推荐及dns测速
  8. iPad连蓝牙鼠标鼠标滚动与屏幕相反的解决方法
  9. 计算机中¥符号按哪个键,电脑键盘符号快捷键大全 电脑键盘上每个键的作用?...
  10. Centos7+DockerCompose部署.NetCore3.1应用