今天学习了一下《计算几何》,里面讲了一下关于判断一个点是否在某个三角形内的问题(在二维平面上)。其中有一个算法是“同向法”,主要是用叉积来判断两个点是否在某条线段的同一侧,如图(1)所示。关于“同向法”再次不做具体介绍,感兴趣的同学可以百度之,或者关注本人后面更新的博文。关于《计算几何》系列的博文,我会继续学习,总结并发布到博客上。

图1

好了,言归正传,我们只知道在二维平面中,两个向量的叉乘其结果(叉积)是一个确切的值。例如向量A(x1,y1)和向量B(x2,y2)叉乘:A(x1,y1)xB(x2,y2)

=

|A||B|sina,其中a为向量A和向量B的夹角,|A|和|B|是向量A和向量B的模,sina是一个与角a有关的实数。可以看出向量A和向量B的最终结果是一个确切的实数。这和我们所知的两个向量的叉积是一个垂直于其平面的法向量有些背离了,因为我们得到确实是一个值,而不是一个向量。这是神马情况呢?

对于一个三角形ABC来说,CA和CB的夹角为a,那么三角形的面积S = 1/2(|CA||CB|sina),也就是S =

1/2(CAxCB),可以将该面积看作三角形的有向面积。由右手坐标系可知,正对着我们的方向为正面,那么背对着我们的一面就是负面,因为对于一个平面而言,肯定是有一个正面和负面了。如果定义该三角形的平面法向量的方向n,那么n就与向量CA,CB垂直,也就和三角形正面的法向量是一致的。所以说,二维向量的叉积不能简单地看作是一个标量,其实质上是一个向量。

下面将二维向量看作成z轴值恒为0的三维向量,例如向量OA(x1,y1,0),OB(x2,y2,0),其实质上还是平面xy上的向量,只不过引入z轴,使其具有三维空间的上的意义。可以根据三维向量的叉积公式(1-1)计算得出OAxOB的值。

(1-1)

其矩阵表示如下:

那么OAxOB = (0,0,x1y2-x2y1)(#1),很明显(0,0,x1y2-x2y1)也是一个向量,并且是垂直于向量OA和OB构成的平面的法向量,而其方向的正负就取决于它们的输入(x1,y1)和(x2,y2)的值。

java 二维向量_二维向量的叉积是标量还是向量?相关推荐

  1. 二维向量的叉积是标量还是向量?

    二维向量的叉积是标量还是向量? 今天学习了一下<计算几何>,里面讲了一下关于判断一个点是否在某个三角形内的问题(在二维平面上).其中有一个算法是"同向法",主要是用叉积 ...

  2. c++ 二维数组_二维数组的声明2019_04_18

    -------------[感谢小郡提供的图片] [广告位招租] ---------------------------------------------------------------- -- ...

  3. 生成有时间限制的二维码_二维码竟有被用完的一天!看到截止日期后,网友:虚惊一场...

    生活在现如今这样一个智能化的时代中,二维码已经逐渐成为了人们日常生活中必不可少的存在.出门骑共享单车要扫码.购物买东西要出示微信.支付宝付款码.聊天加好友同样也是要用到二维码,可以说现在的生活中已经无 ...

  4. python定义二维数组_二维数组的定义、初始化和输出,C语言二维数组详解

    本节学习二维数组.二维数组与一维数组相似,但是用法上要比一维数组复杂一点.后面的编程中,二维数组用得很少,因为二维数组的本质就是一维数组,只不过形式上是二维的.能用二维数组解决的问题用一维数组也能解决 ...

  5. java 二叉堆_二叉堆(三)之 Java的实现

    概要 前面分别通过C和C++实现了二叉堆,本章给出二叉堆的Java版本.还是那句话,它们的原理一样,择其一了解即可. 二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两 ...

  6. 超维术士_超维计算及其在人工智能中的作用

    超维术士 它是什么? (What is it?) Don't be intimidated by the name hyperdimensional computing-Even though it ...

  7. 网格化运维标书_运维网格化管理.ppt

    运维网格化管理 运维网格化管理 2013年5月20日 内容 网格及网格管理简介 网格概念 网格标准与特征 网格分类 网格结构 网格应用 网格化管理 总行运维网格化管理的应用 --以生产运行室为例 &q ...

  8. java上三角数组_二维数组的三角填充 两种java实现的方法

    类似这种: 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 认为第二种方法简单还是第一种方法简单直接决定了你的水平. package test; /** * 二维数组 三角填充 ...

  9. 建立二维数组_二维数组的 DP

    寻找不同路径和 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标 ...

  10. c.kdocs cn二维码_二维码防窜货解决方案,物流动向尽在掌握

    http://ccn.yesno.com.cn/zsfch/一物一码防窜货管理系统 二维码防窜货解决方案,处理各种窜货,阻止多地经销商窜货.窜货的情况经常发生,企业做不到各地的分销商都能全部管理.分销 ...

最新文章

  1. js跨域请求方式 ---- JSONP原理解析
  2. [译] Facebook杯2013年编程挑战赛——第一轮题目及答案
  3. 数据访问模式二:数据集和数据适配器(传统的数据访问模式)
  4. 还不懂Redis?看完这个故事就明白了!
  5. java升级菜单切换_java 关于系统菜单升级
  6. 第七次spring会议
  7. 弱密码校验_TomCat8 弱密码上传getshell
  8. iphone:解析html的第三库hpple初试
  9. python调用视频流_RTSP协议进行视频取流的方法、注意点及python实现
  10. 数据库索引失效的一些场景
  11. 红米k50 至尊版 解锁bl 获取root教程步骤
  12. SpringBoot整合Redis_Jedis版(二十)
  13. 企业信息系统集成发展阶段及ESB对企业的价值体现
  14. hulu dpp_如何取消您的Hulu订阅
  15. php强行横屏,强制横屏app
  16. OSChina 周四乱弹 ——程序员们离职的理由。
  17. 没有互联网,如何本地获取到LoRaWAN的终端数据?
  18. java学习总结之集合框架
  19. 利用黑客手段一台手机“变”出千万台,新型诈骗技术曝光
  20. linux安装xbox无线手柄,ROS配置和使用Xbox One无线手柄

热门文章

  1. 【图像加密】基于Arnold置乱图像加密解密Matlab代码
  2. Linux c/c++之文件拷贝
  3. 装系统时出现获取硬盘分区失败 可能缺少硬盘驱动怎么办
  4. STM32 USB Mass Storage 例程调试笔记
  5. html安装网卡驱动,教您怎么用驱动精灵安装网卡驱动
  6. Seaweedfs 详细说明
  7. wiki admin.php,dokuwiki 重置管理员密码
  8. 牛客网——Java刷题篇
  9. 解决tomcat中文乱码问题的方案
  10. JUCE学习笔记03-Slider、Listener、Label类