通过三点计算一个平面 ax+by+cz+d = 0

简介

如何通过三个点计算一个平面的的方程。

数学相关

A(0,1,0);
B(1,0,0);
C(1,1,0);

$$\vec{AB} = B - A = (1,-1,0)$$
$$\vec{AC} = C - A = (1,0,0)$$
\begin{equation}
\vec{AB} \times \vec{AC} =
\left(
\begin{array}{ccc}
i & j & k\
1 & -1 & 0\
1 & 0 & 0
\end{array}
\right)
=
\left(
\begin{array}{cc}
-1 & 0\
0 & 0
\end{array}
\right)_{i}

  • \left(
    \begin{array}{cc}
    1 & 0\
    1 & 0
    \end{array}
    \right)_{j}
  • \left(
    \begin{array}{cc}
    1 & -1\
    1 & 0
    \end{array}
    \right)_{z}
    =
    (0,0,1) = (a,b,c)
    \end{equation} % 注意观察计算某个向量就把某一列遮住,然后即可计算

得到
a(x - x_{0}) + b(y - y_{0}) + c(z- z_{0}) = 0
==>
0(x - x_{0}) + 0(y - y_{0}) + 1(z- z_{0}) = 0
==> 带入 A 点的坐标
z = 0 即标准答案~~

C++ 实现

void SimpleMesh::computeABCD(Mesh::Point &point1, Mesh::Point &point2, Mesh::Point &point3, double& a, double& b, double & c, double &d)
{Mesh::Normal  vecP1P2 = point2 - point1;Mesh::Normal  vecP1P3 = point3 - point1;Mesh::Normal  vecNormal = vecP1P2 % vecP1P3;double length = getDis(vecNormal, vecNormal);a = vecNormal[0] / length;b = vecNormal[1] / length;c = vecNormal[2] / length;// 带入point1 //a * ( x - point1[0] ) + b * (y - point1[1]) + c * (z - point1[2]) = 0d = a * (-1) * point1[0] + b * (-1) * point1[1] + c * (-1) * point1[2];
}

转载于:https://www.cnblogs.com/eat-too-much/p/11323541.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一、了解快逸报表

<?XML:NAMESPACE PREFIX O />1、轻轻松松掌握报表设计&#xff08;代前言&#xff09;报表&#xff0c;是很多应用系统中很重要的一个组成部分。快逸报表&#xff0c;是现在市场极具竞争力的免费的、快速开发Web 报表的java工具。虽然免费&#xff0c;但这并不意味着快…

同步、异步、回调函数面试经典问题

1、首先需要记住的是这么一句话 同步先行》异步靠边》回调垫底 <script>var a new Promise(function () {console.log(1);setTimeout(() > consoel.log(2), 0);console.log(3);console.log(4);resolve(true);})a.then(v > {console.log(8)});var b new Promise(…

嫦娥共舞

嫦娥共舞——代腾飞 2007年9月18日 于成都莲花府邸籁天音吟诗作赋把歌唱执手嫦娥舞一曲只把人间变天堂

CSS3动画和VUE动画整理

W3School CSS3过渡 浏览器支持 Internet Explorer 10、Firefox、Chrome 以及 Opera 支持 transition 属性。Safari 需要前缀 -webkit-。 注释&#xff1a;Internet Explorer 9 以及更早的版本&#xff0c;不支持 transition 属性。 注释&#xff1a;Chrome 25 以及更早的版本…

[导入]超酷的一个Blog

怎么也没有想到用 console mode 在 command-line 下命令来阅读文章。打开这个blog&#xff1a;http://blog.elinc.ca/rodcli/index.php 。不要以为这是一个Unix/Linux命令行界面&#xff0c;如果你有用过 UNIX /Linux的 console mode&#xff0c;看到这样的界面大概都会下意识地…

Microsoft JET Database Engine 错误 #39;80004005#39;的解决方法

今天重新安装了操作系统&#xff0c;为了学习asp.net因此把系统盘修改成了ntfs格式&#xff0c;而自己通常用来调试的asp文件都放在D盘&#xff08;FAT32格式的分区&#xff09;&#xff0c;以前能够正常调试的程序现在一旦连接数据库就出错&#xff0c;就算用odbc也是连接失败…

VueJS项目

VueJS项目 - awesome-vue vue-cli引用jquery, bootstrap, bootstrap-table 引用jquery 找到vue-project/build/webpack.base.conf.js文件&#xff0c;在module.exports下添加plugins, 需要在之前&#xff0c;引用webpack, var webpack require(webpack); 参考 plugins: [n…

[OSG]如何用Shader得到物体的世界坐标

最近群里面有个朋友问我关于如何得到OpenGL世界坐标的问题&#xff0c;当时我还弄错了&#xff0c;误以为gl_ModelViewMatrix*gl_Vertex就是世界坐标。因最近也突然遇到了世界坐标的问题&#xff0c;所以花了一些时间来研究这个问题&#xff0c;网上也有人问&#xff0c;但或许…

Exposing Windows Forms Controls as ActiveX controls

转&#xff1a;http://www.codeproject.com/cs/miscctrl/exposingdotnetcontrols.asp?df100&forumid2373&exp0&select1359005 Download demo project - 15 Kb This article will describe how to utilise Windows Forms controls outside of .NET. In a recent MS…

知识碎片

JS 部分 基本类型 对于类型的进一步判断&#xff0c; 可以参考js类型判断 # typeof undefined – 未定义 object – 对象或null # null类型 如果定义的变量准备在将来用于保存对象&#xff0c;那么最好将该变量初始化为 null 而不是其他值。这样一来&#xff0c;只要直接检查…

梦之所寄,行之所为——地狱之门就此洞开(读梦断代码有感)

在博客园的精华区看到一篇名为“程序员&#xff0c;对自己好一点”的文章&#xff0c;颇有感触。我只是初涉这个圈子的一个小小的实习生&#xff0c;却也觉得对于程序员而言&#xff1a;累&#xff0c;加班工作&#xff0c;吃青春饭…。为什么要把自己弄得如此狼狈&#xff1f;…

MPLS-L3×××中的公网访问

1.在站点内配置一个代理服务器拥有公网IP做NAT&#xff0c;之后网关写到CE&#xff0c;CE上配置默认路由指向PE&#xff0c;之后PE上做静态的公网跳出路由&#xff0c;即在静态路由的下以跳写public关键字。之后做回程路由跳回&#xff0c;下一跳写站点地址即可&#xff0c;但是…

Vuetable-2使用全纪录

vuetable-2介绍 vuetable2是一款基于vuejs开发的table组件&#xff0c;支持表格加载和翻页、翻页信息展示的组件官方github | 官方API学习 | Tutorialvuetable-2包括三个部分&#xff1a; vuetablevuetablePagination vuetablePaginationDropdownvuetablePaginationMixinvue…

OCP-052考试题库汇总(26)-CUUG内部解答版

Which three of these must be accessible to keep a database open? A)Control file. B)All members of a redo log group. C)SYSTEM tablespace. D)SYSAUX tablespace. E)spfile Answer: ABC 赵&#xff1a; 1 nomount&#xff1a;实例已经启动&#xff0c;进程和内存已经分…

QT_C++

QT_C C 与 C 区别&#xff1a;  面向过程&#xff1a;吃&#xff08;狗&#xff0c;屎&#xff09; 面向对象&#xff1a;狗. 吃&#xff08;屎&#xff09; ^ . ^ 博客&#xff1a;https://www.runoob.com/cplusplus/cpp-tutorial.html 插入符&#xff1a;<< 控制符…

使用Nodejs搭建server

使用Nodejs搭建server&#xff08;MySQL MongoDB&#xff09; 环境 文件 版本号nodejs8.10.0mysql2.16.0express-generator4.16.0pm23.0.3ejs2.6.1 - 准备工作 安装上述环境依赖使用express-cli快速创建服务&#xff0c;资料 express project-name将express的默认引擎jade调…

静态路由的实现

在路由器A上做如下配置&#xff1a;router(config)#hostname AA(config)#interface f0/0A(config-if)#ip address 192.168.1.1 255.255.255.0 A(config-if)#no shutdownA(config)#interface f0/1A(config-if)#ip address 192.168.2.1 255.255.255.0 A(config-if)#no shutdownA(…

2019-08-09 纪中NOIP模拟赛B组

T1 [JZOJ1035] 粉刷匠 题目描述 windy有N条木板需要被粉刷。 每条木板被分为M个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷&#xff0c;只能选择一条木板上一段连续的格子&#xff0c;然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次&#x…

vue3实现打字机的效果

前言&#xff1a; vue3项目中实现打字机的效果。 实现效果&#xff1a; 实现步骤&#xff1a; 1、安装插件 npm i vue3typed 2、main.js中配置 import vuetyped from vue3typedconst app createApp(App) // 挂载打字机的全局方法 app.use(vuetyped) 3、界面使用 <vuet…

易中天与单田芳的区别在哪儿

单田芳先生是中国著名的评书演员&#xff0c;我非常喜欢听单田芒的评书&#xff0c;在那个没有电视机的时代&#xff0c;收听单田芳先生的评书对我来说就是一种最大的人生享受。所以&#xff0c;“单田芳”这三个字早就镌刻在我的脑海之中。一直到今天我还深深地敬仰着这位全国…