按右手定则求已经知三点的法向量
编程这么久了还没有一个自己常用的数学库,每每需要求解什么算法,都在网上查找相关资料,不过好处是可以复习一些已经忘却很久的知识,体验一下温故而知新。
背景知识
向量积,已知向量
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
按右手定则求已经知三点的法向量相关推荐
- 知三点求平面 || 点到平面的距离
知三点求平面 点到平面的距离 double x,y,z;cin>>x>>y>>z;double p1x,p1y,p1z,p2x,p2y,p2z,p3x,p3y,p3 ...
- 已知三点求平面方程、平面法向量和点到平面的距离
已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1 ...
- matlab已知三点求夹角,已知3点如何求其中两点对第3点的夹角
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:已知3点如何求其中两点对第3点的夹角? 问题详情:有3个问题:1)已知3点如何求其中两点对第3点的夹角?2)如何回答:1)已知3点求 ...
- 已知三点求平面方程、平面法向量和点到平面的距离(转载)
已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1 ...
- 已知三点空间直角坐标求空间平面方程
已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1), p1 ...
- 已知三个点坐标求 三角形面积 || 求任意多边形面积公式||判断点在直线的左侧还是右侧
已知三个点坐标求 三角形面积 由A-->B-->C-->A 按逆时针方向转.(行列式书写要求) 设三角形的面积为S 则S=(1/2)*(下面行列式) |x1 y1 1| |x2 y2 ...
- 已知三点求圆心与半径
已知三点求圆心与半径 kezunhai@gmail.com http://blog.csdn.net/kezunhai 在计算机图像图形学中,经常会用到求圆心或圆半径的情况,本文介绍一种已知三个点求 ...
- C#已知三点求圆方程算法
如果不赶时间可以自己推算出算式或者直接参考另一个博主的文章: 三点确定一个圆的计算方法_Ivan 的专栏-CSDN博客_三点确定一个圆 程序完整部分<C#已知三点求圆方程算法.rar>已经 ...
- 已知三点求圆心和半径
https://blog.csdn.net/youhuakongzhi/article/details/86474619 https://blog.csdn.net/qq_43572555/artic ...
- C++里已知三个三维点,求他们的平面方程,怎么做?
已知三个点坐标为P1(x1,y1,z1), P2(x2,y2,z2), P3(x3,y3,z3) 所以可以设方程为A(x - x1) + B(y - y1) + C(z - z1) = 0 (点法式) ...
最新文章
- CSS3 Animation(下)
- C语言记录元音字母的位置,算法训练 确定元音字母位置
- SSIM与PSNR的计算方式
- vue 封装dialog_自己封装dialog组件
- systemtap执行过程中报probe timer.profile registration error
- 七种场景下的软件作业量估计
- Spring IOC中bean标签和管理对象细节
- OpenDDS 编译
- 网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
- 基于FPGA的SRIO核的使用
- 空间解析几何 | 向量、数量积、向量积、混合积、距离公式
- NPOI操作Excel类代码(打开 插入 设置行列宽 合并单元格 增删改工作表 保存等等) .NET4.5
- python+mysql逆向_Python js逆向 爬取X天下数据,好好看,好好学
- 吴冠中的一类国画:盛世的迷思
- python微信远程控制摄像头_python实现微信远程控制电脑
- 【转】SSL协议、SET协议、HTTPS简介
- 埃尔米特多项式 (Hermite Polynomials)简介(1)
- 太恐怖了 两天搞定一个项目 Java Web MVC 网络商城教程+源代码
- iOS开发小记:初次接入环信SDK3.0时遇到的问题及解决办法汇总
- hbase排序 ASCII码对照表
热门文章
- html动画 箭头线条,纯CSS3实现的箭头图标和箭头循环动画
- kali桌面的安装与切换
- Windows Installer (无法访问你试图使用功能所在的网络位置)问题
- 《开店有讲究》读书笔记
- php 获取支付宝账号密码,php支付宝单笔转账到支付宝账户,用户提现业务-Go语言中文社区...
- 【AI视野·今日CV 计算机视觉论文速览 第241期】Wed, 1 Dec 2021
- 公共DNS推荐及dns测速
- iPad连蓝牙鼠标鼠标滚动与屏幕相反的解决方法
- 计算机中¥符号按哪个键,电脑键盘符号快捷键大全 电脑键盘上每个键的作用?...
- Centos7+DockerCompose部署.NetCore3.1应用